рдиреЗрд╡рд┐рдЧреЗрд╢рди: рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд░рд┐рдпрд░ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдбрд┐рдЧреНрд░реА рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рд╕реЗ, рдореИрдВ рдПрдХ рд╕реНрдХреВрд▓ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдПрдХ рджрд╡рд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪреМрдЦрдЯреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдХреБрдЫ рдЧрд╛рдпрдм рдерд╛ред

рдмрд╣реБрдд рдмрд╛рд░ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдкрд╣рд╛рдбрд╝реЛрдВ рдХреЛ рдлрд╛рд╡рдбрд╝рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╕реНрдХреНрд░реАрди рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ рдЕрдХреНрд╕рд░ рдЯреВрд▓ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЯреВрд▓ рдХреЛ, рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ, рдХрд┐рд╕ рд╡рд┐рд╡рд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрд░реНрдХ рдХреЛ рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рдПрдХ рдпрд╛ рджреЛ рдХреНрд▓рд┐рдХ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрде рджреЗрдЦреЗрдВред рдХрд┐ рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрдВрддреНрд░ рдерд╛ред

рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдореЗрдВ, рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЪрд░рдгрдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдПред

рдкрд░рд┐рдЪрдп


рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЕрдкрдирд╛ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд░рд┐рд╢реНрддреЛрдВ, рд╡рди-рдЯреВ-рд╡рди, рд╡рди-рдЯреВ-рд╡рди, рдХрдИ-рд╕реЗ-рдХрдИ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреБрдЫ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ CRUD, рд░рд┐рдкреЛрд░реНрдЯ, рд░реЗрдЦрд╛рдВрдХрди, рд╕реВрдЪрд┐рдпрд╛рдБред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдХрдИ рдЗрдХрд╛рдЗрдпрд╛рдБ рдПрдХ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдмреА-рджреГрд╢реНрдп рд╡рд░реНрдЧ B, D рдФрд░ E рд╕реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдбреЛрдореЗрди рдореЙрдбрд▓ рд╕реНрддрд░ рдкрд░ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреГрд╢реНрдп рдмреА рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рд╕реА рдХреЛ рджреЗрдЦрдиреЗ, рдлрд┐рд░ рдПрдл, рдлрд┐рд░ рдИред

рдПрдХ рдФрд░ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ A рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ E рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред

рдпрд╛ рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк, рджреВрд╕рд░реА рддрд░рдл рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди E рд╕реЗ рдФрд░ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд╕реЗ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди A рддрдХ рдЬрд╛рдПрдБред

рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

MVC рдпрд╛ рдШрдЯрдХ рд░реВрдкрд░реЗрдЦрд╛


рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪреБрдирдирд╛, рдореИрдВ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП MVC рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдлрд╛рдпрджреЗ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдШрдЯрдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рд╕реЗ, рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рдЧреНрд░рд╛рдлрд╝ рдФрд░ рдЕрдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рд╕рд╛рджрдЧреА рд▓реЗрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд╣рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреНрд░рдЯреНрд╕ рдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╡реЗрдм рдлреНрд▓реЛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд╛рдбрд┐рди рдХреЛ рдПрдХ рдШрдЯрдХ рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЬрдмрдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╡реЗрдм рдлреНрд▓реЛ рдХреЗ рд╕рдорд╛рди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдерд╛ред рдЕрдиреБрд░реЛрдз / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЙрдбрд▓ рддрдВрддреНрд░ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд╡рд╛рдбрд┐рди рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╡реЗрдм рдлреНрд▓реЛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдЗрд╕рд▓рд┐рдП, рд╡реЗрдм рдлреНрд▓реЛ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдЕрдиреБрд░реЛрдз / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЙрдбрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЖрдзрд╛рд░ рдХреЛ рдпреВрдПрдордПрд▓ рд╕реНрдЯреЗрдЯрдЪреИрдЯ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдиреЗ рд╕реНрдЯреЗрдЯрдЪрд░реНрдЯ рдХреЛ рдПрдХ рдШрдЯрдХ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдмрдирд╛рдпрд╛ рддрд╛рдХрд┐ рд░рд╛рдЬреНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡реЗрджрди рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдХреЗ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред


рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░

рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдХ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреМрди рд╕реА рдИрд╡реЗрдВрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред

рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдЗрдВрдЬрди

рдЗрдВрдЬрди рдИрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рд░рд╛рдЬреНрдп рдирд┐рдпрдВрддреНрд░рдХ

рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реНрдЯреЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдЗрдВрдЬрди рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд░рд╛рдЬреНрдп рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рд╢реБрд░реБрдЖрдд


рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рджреЛ рд░рд╛рдЬреНрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреИрдирд▓ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<flow initial="Panel1" ...> <controller id="Panel1"> <on event="panel2" to="Panel2"/> </controller> <controller id="Panel2"> <on event="panel1" to="Panel1"/> <on event="ok" to="OK"/> </controller> <final id="OK"/> </flow> 

"рдкреИрдирд▓ 1" рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдПрдХ рдШрдЯрдирд╛ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ "рдкреИрдирд▓ 2" рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬрдм рдПрдХ "рдУрдХреЗ" рдИрд╡реЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рдЖрдЗрдП рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ, рдбреЛрдореЗрди рдЗрдХрд╛рдИ "рд╡реНрдпрдХреНрддрд┐" рдХреЛ рд▓реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реАрдЖрд░рдпреВрдбреА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЬреНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛред

  <flow initial="list" ...> <module id="person"> <controller id="list"> <on event="create" to="create"/> <on event="read" to="read"/> <on event="update" to="update"/> <on event="delete" to="delete"/> </controller> <controller id="create"> ... </controller> <controller id="read"> ... </controller> <controller id="update"> <on event="updated" to="list"/> <on event="canceled" to="list"/> </controller> <controller id="delete"> ... </controller> </module> </flow> 


рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред "рдмрдирд╛рдиреЗ", "рдкрдврд╝рдиреЗ", "рдЕрдкрдбреЗрдЯ" рдФрд░ "рд╣рдЯрд╛рдиреЗ" рдХреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ "рд╕реВрдЪреА" рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╡рд╛рдкрд╕ рдХреИрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ? рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╕реВрдЪреА рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдмрджрд▓рд╛рд╡ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдмрд╛рдд рд╣реЛрдЧреА:

 <on event="updated" to="list"/> <on event="canceled" to="list"/> 


рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк "рд▓рд┐рд╕реНрдЯ", "рд░реАрдб", "рдЕрдкрдбреЗрдЯ" рдФрд░ "рдбрд┐рд▓реАрдЯ" рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ "рд▓рд┐рд╕реНрдЯ" рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рд░реАрдб" рдпрд╛ "рдбрд┐рд▓реАрдЯ" рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред "рд░реАрдб" рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ "рд▓рд┐рд╕реНрдЯ" рдкрд░ рд╡рд╛рдкрд╕ рдХреНрдпреЛрдВ рдЬрд╛рдПрдВ, рдлрд┐рд░ "рдЕрдкрдбреЗрдЯ" рдкрд░ рдЬрд╛рдПрдВ рдпрджрд┐ рдЖрдк рддреБрд░рдВрдд "рд░реАрдб" рд╕реЗ "рдЕрдкрдбреЗрдЯ" рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░ "рдЕрдВрддрд┐рдо" рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рддрд╛рдХрд┐ рдИрд╡реЗрдВрдЯ рдЙрдирдХреЗ рдкрд╛рд╕ рдЬрд╛рдПрдВ, рди рдХрд┐ рдмрд╛рд╣рд░реА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП:

 <controller id="create"> <on event="created" to="created"/> <on event="canceled" to="canceled"/> <final id="created"/> <final id="canceled"/> </controller> <controller id="update"> <on event="updated" to="updated"/> <on event="canceled" to="canceled"/> <final id="updated"/> <final id="canceled"/> </controller> 


рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╣реЛрдиреЗ рдкрд░, рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдЕрдкрдирд╛ рд╕рдВрдЪрд╛рд▓рди рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ LWF рд╡рд░реНрддрдорд╛рди рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд╛рдо рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдмрдиреЗ рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд┐рдЫрд▓реЗ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "update.updated", "update.canceled" рдпрд╛ "create.created", рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдХрд╛рдо рдЦрддреНрдо рдХрд░ рдЪреБрдХрд╛ рд╣реИред

рдЖрдзрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ

рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рд╡реНрдпреВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рдерд╛ рддреЛ рдПрдХ рдЯреЗрдмрд▓ рдпрд╛ рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрдзрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рд╕реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред рдЙрдирдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЖрдзрд╛рд░ рдЬреАрд╡рди рдЪрдХреНрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ "рдХрд╛рд░реНрд░рд╡рд╛рдИ" рдФрд░ "рджреГрд╢реНрдп" рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХреНрд╢рди рд╕реНрдЯреЗрдЯреНрд╕ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рд╡реНрдпреВ рд╕реНрдЯреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдХрдм рдЖрд╡рд╢реНрдпрдХ рд╣реИ

  <controller id="controller" initial="initView"> <!-- init view. create all components of the view. get ready to setup data --> <action id="initView" extends="action"> <on to="loadData"/> </action> <!-- setup data before displaying the view. get data from context attributes --> <action id="loadData" extends="action"> <on to="displayView"/> </action> <view id="displayView" extends="view"> <on event="ok" to="ok"/> <on event="close" to="close"/> <on event="cancel" to="canceled"/> </view> <final id="close" extends="action"/> <final id="canceled" extends="action"/> <final id="ok" extends="action"/> </controller> 


рдПрдХреНрд╢рди - "initView" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╡реНрдпреВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрдЯреНрд░реЛрд▓рд░ рдиреЗ рд╡реНрдпреВ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХреНрд╢рди "рд▓реЛрдбрдбрд╛рдЯрд╛" рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреЛ рд╡реНрдпреВ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "рдбрд┐рд╕реНрдкреНрд▓реЗ рд╡реНрдпреВ" рдХреА рд╕реНрдерд┐рддрд┐ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╡реНрдпреВ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИред рдЖрд╡реЗрджрдиред

"рдУрдХреЗ", "рдХреНрд▓реЛрдЬрд╝" рдпрд╛ "рд░рджреНрдж" рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ "рдбрд┐рд╕реНрдкреНрд▓реЗ рд╡реНрдпреВ" рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдиреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдЦрддреНрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИред



"рдПрдХреНрд╢рди" рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  @OnEnterState(EventConstants.INIT_VIEW) public void initView(StateEvent event) { ... } 


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ "initView" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ initView рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд░рд╛рдЬреНрдп рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде OnEnterState рдПрдиреЛрдЯреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИред рдФрд░ рдПрдХ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рдШрдЯрдирд╛ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдШрдЯрдирд╛ рдореЗрдВ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрдпрдирд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдФрд░ рдкрд╣рдЪрд╛рди-рд╕рдВрдмрдВрдзреА рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрд╕реА рддрд░рд╣, рдЖрдк рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рджреГрд╢реНрдп" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред

  @OnEnterState(EventConstants.DISPLAY_VIEW) public void refreshTable(StateEvent event) { тАж } 


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ "рдбрд┐рд╕реНрдкреНрд▓реЗ рд╡реНрдпреВ" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓

рдЪреВрдВрдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдСрд░реНрдбрд░" рдореЙрдбреНрдпреВрд▓ рд╕реЗ, рдЖрдк "go_addresses" рдЗрд╡реЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ "рдПрдбреНрд░реЗрд╕" рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CRUD рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 <module id="addresses" initial="list"> ... <controller id="list" тАж > <on event="go_create" to="create"/> <on event="go_read" to="read"/> <on event="go_update" to="update"/> <on event="go_delete" to="delete"/> </controller> <controller id="create" тАж > тАж </controller> <controller id="read" тАж > тАж </controller> <controller id="update" тАж > тАж </controller> <controller id="delete" тАж > тАж </controller> ... </module> 


"рдкрддреЗ" рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реБрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рд╕реВрдЪреА" рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдХреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХреЗ рд╕рд╛рде:

  flowControllerContext.bindController("addresses/list", тАЬcontentтАЭ, new AddressesListController ()); flowControllerContext.bindController("addresses/create", тАЬcontentтАЭ, new AddressesCreateController ()); flowControllerContext.bindController("addresses/read", тАЬcontentтАЭ, new AddressesReadController ()); flowControllerContext.bindController("addresses/update", тАЬcontentтАЭ, new AddressesUpdateController ()); flowControllerContext.bindController("addresses/delete", тАЬcontentтАЭ, new AddressesDeleteController ()); 


рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╢реНрдп (AddressesListView) AddressesListController рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рддрдм рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рдкрддреЗ / рд╕реВрдЪреА" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рддрд░рд╣, рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ "рд╡реНрдпреВ", "рд░реАрдб", "рдЕрдкрдбреЗрдЯ", "рдбрд┐рд▓реАрдЯ" рд╕реНрдЯреЗрдЯреНрд╕ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВред "рд╕реВрдЪреА" рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрд╡реЗрджрди рдЗрд╕реА "рдмрдирд╛рдиреЗ", "рдкрдврд╝рдиреЗ", "рдЕрджреНрдпрддрди" рдпрд╛ "рд╣рдЯрд╛рдПрдВ" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



CRUD: рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рдСрдкрд░реЗрд╢рди


рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕реВрдЪреА, рдмрдирд╛рдПрдБ, рдкрдврд╝реЗрдВ, рдЕрдкрдбреЗрдЯ, рд╣рдЯрд╛рдПрдВ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - "рдХреНрд░реВрдб", рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВ, рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ CRUD рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдПред

  <module id="crud" initial="list" ...> <controller id="list" extends="controller"> <on event="create" to="create"/> <on event="read" to="read"/> <on event="update" to="update"/> <on event="delete" to="delete"/> </controller> <controller id="create" extends="controller"> тАж </controller> <controller id="read" extends="controller"> тАж </controller> <controller id="update" extends="controller"> тАж </controller> <controller id="delete" extends="controller"> тАж </controller> </module> <module id="orders" extends="crud" > <on event="go_account" to="account"/> <on event="go_addresses" to="addresses"/> </module> <module id="account" extends="crud"/> <module id="addresses" extends="crud"/> 


"рдЖрджреЗрд╢", "рдЦрд╛рддрд╛", "рдкрддреЗ" рдореЙрдбреНрдпреВрд▓ рдКрдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд "рдХреНрд░реВрдб" рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╕реАрдЖрд░рдпреВрдбреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рддрд░реНрдХ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдирдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рдлреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

Readonly + CRUD: рджреЗрдЦрдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдЕрдВрддрд░

рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХреБрдЫ рдСрдкрд░реЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реАрдЖрд░рдпреВрдбреА рдХреЛ рджреЛ рдореЙрдбреНрдпреВрд▓ "рдЖрд╕рд╛рдиреА рд╕реЗ" рдФрд░ "рдХреНрд░реВрдб" рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд░реАрдбрдСрдирд▓реА" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреВрд░реНрдг рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП "рдХреНрд░реВрдб"ред

  <module id="readonly" initial="list" extends="module"> <controller id="list" extends="controller"> <on event="read" to="read"/> </controller> <controller id="read" extends="controller"/> </module> <module id="crud" initial="list" extends="readonly"> <controller id="list" extends="readonly/list"> <on event="create" to="create"/> <on event="update" to="update"/> <on event="delete" to="delete"/> ... </controller> <controller id="create" extends="controller"> тАж </controller> <controller id="read" extends="controller"> тАж </controller> <controller id="update" extends="controller"> тАж </controller> <controller id="delete" extends="controller"> тАж </controller> </module> <module id="orders" extends="readonly" > <on event="go_account" to="account"/> <on event="go_addresses" to="addresses"/> </module> <module id="account" extends="crud"/> <module id="addresses" extends="crud"/> 


рдЪреВрдВрдХрд┐ рдСрд░реНрдбрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд░реАрдбреЛрдирд▓реА рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрджреЗрд╢ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред "рдЦрд╛рддрд╛" рдФрд░ "рдкрддреЗ" рдореЙрдбреНрдпреВрд▓, "рдХреНрд░реВрдб" рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ, рдмрдирд╛рдиреЗ, рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдкрд┐рдХрд░: рд╕реВрдЪреА рд╕реЗ рдорд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реАрдЖрд░рдпреВрдбреА рдореЙрдбреНрдпреВрд▓ рд╕реЗ "рд╕реВрдЪреА" рд░рд╛рдЬреНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЬрдм рдШрдЯрдирд╛ "рд░реАрдб" рд╣реЛ, рддреЛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ "рд░реАрдб" рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рди рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк "crud" рдореЙрдбреНрдпреВрд▓ рдореЗрдВ "рдкрд┐рдХрд░" рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ "crud / list" рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛:

  <module id="crud" initial="list"...> тАж <controller id="picker" extends="crud/list"> <on event="read" to="picked"/> <final id="picked" extends="action"/> </controller> </module> 


рдирд┐рдпрдВрддреНрд░рдХ - "рдкрд┐рдХрд░" "рдХреНрд░реВрдб / рд▓рд┐рд╕реНрдЯ" рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ "рд░реАрдб" рдЗрд╡реЗрдВрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ - "рдЙрдард╛рдпрд╛"ред рдпрд╣ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реМрдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЪрдпрдирд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде picker.picked рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЗрд╕реЗ рдкрдХрдбрд╝рдХрд░, рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреАред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреА рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  <module id="orders" extends="readonly" > <on event="go_account" to="account"/> <on event="go_addresses" to="addresses"/> <on event="select.account" to="account/picker"/> <on event="select.addresses" to="addresses/picker"/> </module> <module id="account" extends="crud"/> <module id="addresses" extends="crud"/> 


рдореЙрдбреНрдпреВрд▓ "рдСрд░реНрдбрд░" рд╕реЗ "select.account" рдФрд░ "select.addresses" рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, "рдЦрд╛рддрд╛ / рдкрд┐рдХрд░" рдФрд░ "рдкрддреЗ / рдкрд┐рдХрд░" рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдмреАрдирдиреЗ рдХрд╛ рддрдВрддреНрд░ рди рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реАрдЖрд░рдпреВрдбреА рдореЙрдбреНрдпреВрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рд╣реИред

рдкреНрд░реЛрдлрд╛рдЗрд▓ - рд╕рдореВрд╣ рдореЙрдбреНрдпреВрд▓

рдЪреВрдВрдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рджрд╕рд┐рдпреЛрдВ рдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рд╡рд┐рднрд┐рдиреНрди рднреВрдорд┐рдХрд╛рдУрдВ (рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рд╕рдВрдЧрдарди рдХреЗ рдЕрдиреНрдп рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ) рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреВрдорд┐рдХрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдЬрдм рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╕реАрдорд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрд░реНрдбрд░ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВред



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

  <profile id="customer" ...> тАж <module id="orders" тАж > <on event="go_account" to="account"/> <on event="go_addresses" to="addresses"/> </module> <module id="account" тАж > </module> <module id="addresses" тАж > </module> тАж </profile> 


рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реНрддрд░ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рддрд╛рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░рд╣реЗрдВ рдФрд░ рдЕрдиреНрдп рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рддрд╛рдХрд┐ рдПрдХ рд╣реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ "t_addresses" рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 <flow> ... <profile id="t_admin" ...> тАж <module id="addresses" extends="t_addresses"> <controller id="list" extends="addresses/list"> <on event="go_export" to="export"/> </controller> <controller id="export" > ... </controller> </module> тАж </profile> <profile id="t_customer" ...> тАж <module id="addresses" extends="t_addresses"/> тАж </profile> <module id="t_addresses" initial="list"> ... </module> ... </flow> 


T_admin рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ t_customer рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд t_addresses рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, t_admin рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХреА рдорджрдж рд╕реЗ, рдПрдбреНрд░реЗрд╕ рдореЙрдбреНрдпреВрд▓ рдПрдХ go_export рдИрд╡реЗрдВрдЯ рдЬреЛрдбрд╝рдХрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╕реВрдЪреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рдкрддреЗ / рдирд┐рд░реНрдпрд╛рдд рд╕реНрдерд┐рддрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ "рдкрддреЗ / рдирд┐рд░реНрдпрд╛рдд" рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдпрд╣ рдмрд╣реБрд░реВрдкрддрд╛ рд╡рд╛рд▓реЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЖрдзрд╛рд░рднреВрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реБрдП, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдПрдХ рд╣реА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдЧреЗ рдХреЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

  <application id="application" ...> тАж <profile id="admin" extends="t_admin"/> <profile id="manager" extends="t_manager" /> <profile id="team_leader" extends="t_manager" > <on event="go_team" to="team"/> <module id="team"тАж> тАж </module> </profile> <profile id="employee" extends="t_employee"/> <profile id="customer" extends="t_customer"/> тАж </application> <profile id="t_admin" ...> ... </profile> <profile id="t_manager" ...>... </profile> <profile id="t_employee" ...>... </profile> <profile id="t_customer" ...>... </profile> 


рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рднреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдФрд░ рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рд╕рдорд╛рдпреЛрдЬрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЦреНрдп рд░рд╛рдЬреНрдп "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдЖрдЙрдЯ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  flowControllerContext.bindController("application", new ApplicationLayoutController()); 


FlowControllerContext рдХреЗ рдмрд╛рд╣рд░реА рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, ApplicationLayoutController, рдЬрд┐рд╕рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рдзреНрдп рд╣реИред рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдВрджрд░, рддрдерд╛рдХрдерд┐рдд "рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рджреГрд╢реНрдп рдбрд╛рд▓реЗ рдЬрд╛рдПрдВрдЧреЗред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЗрдлреНрдЯ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдиреВ, рд▓реЛрдЧреЛ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░, рд╕рд░реНрдЪ рдмрд╛рд░, рд▓реЙрдЧрд┐рди рдмрдЯрди рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд╛рдЗрдЯ рд╕рд╛рдЗрдбрдмрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╣рд╛рдпрдХ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдирд┐рдпреБрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдЖрд╡реЗрджрди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред

рдЬрдм рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  flowControllerContext.bindController("addresses/list", тАЬcontentтАЭ, new AddressesListController ()); flowControllerContext.bindController("addresses/create", тАЬcontentтАЭ, new AddressesCreateController ()); flowControllerContext.bindController("addresses/read", тАЬcontentтАЭ, new AddressesReadController ()); flowControllerContext.bindController("addresses/update", тАЬcontentтАЭ, new AddressesUpdateController ()); flowControllerContext.bindController("addresses/delete", тАЬcontentтАЭ, new AddressesDeleteController ()); 


"рдкрддреЗ" рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдВрдЧреЗ - "рд╕рд╛рдордЧреНрд░реА"ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдЗрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЖрд╡реЗрджрди рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд╛рди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рд╡рд╛рд╣: рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдкреНрд░рд╡рд╛рд╣ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╡рд╛рд╣ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реНрддрд░ рдкрд░ рдЯрд╛рдЗрдк = рд╡рд┐рд╢реЗрд╖рддрд╛ "рдкреНрд░рд╡рд╛рд╣" рдХреЛ "рдЪрд╛рд▓реВ" рдЯреИрдЧ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рдкреНрд░рд╡рд╛рд╣" рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛ рдлреЗрдВрдХрддрд╛ рд╣реИ, рддреЛ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдпрд╛ рддреЛ рдПрдХ рдирдИ рд╕реНрдЯреНрд░реАрдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдХреНрд░рд┐рдп рд╕реНрдЯреНрд░реАрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред

  <profile id="manager" тАж /> <on type="flow" event="orders.flow" to="orders"/> <on type="flow" event="account.flow" to="account"/> <on type="flow" event="addresses.flow" to="addresses"/> <module id="orders" extends="readonly" > <on event="go_account" to="account"/> <on event="go_addresses" to="addresses"/> </module> <module id="account" extends="crud"/> <module id="addresses" extends="crud"/> </profile> 


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЯреИрдм рдореЗрдВ рдзрд╛рд░рд╛рдПрдВ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдереНрд░реЗрдбреНрд╕ рд╕рдорд╛рдкрди рдЯреИрдм рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдХреНрд░рд┐рдп рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдЕрдВрджрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкрде рдХреЛ рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдирд┐рдпрдВрддреНрд░рдгрдХрд░реНрддрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдХрдИ рдЖрдВрддрд░рд┐рдХ рдЕрдВрддрд┐рдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░, рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд╛рдо рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдирдИ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдУрдХреЗ" рдХреА рдЖрдВрддрд░рд┐рдХ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде "рд░реАрдб" рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП, LWF рдПрдХ "read.ok" рдИрд╡реЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬреЛ рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЛ рдкрд┐рдЫрд▓реЗ рдлреНрд▓реЛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдлреЗрдВрдХ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреАред

 <controller id="list" extends="controller"> <on event="read" to="read"/> <on event="read.ok".../> ... </controller> <controller id="read" extends="controller"> <on event="update" to="update"/> <on event="update.updated" to="updated"/> <action id="updated" extends="action"/> <!-- this part already exists in the "read" controller such as it is inherited from the parent "controller" state <view id="displayView" extends="view"> <on event="ok" to="ok"/> ... </view> <final id="ok" extends="action"/> --> тАж </controller> <controller id="update" extends="controller"> <on event="updated" to="updated"/> <final id="updated" extends="action"/> <!-- this part already exists in the "update" controller such as it is inherited from the parent "controller" state <view id="displayView" extends="view"> <on event="cancel" to="canceled"/> ... </view> <final id="canceled" extends="action"/> --> </controller> 


рдзрд╛рд░рд╛рдПрдБ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдпрд╛рдж рдХрд░рддреА рд╣реИрдВ, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рдмреАрдЪред

рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдзрд╛рдЧрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдзрд╛рдЧреЗ рдореЗрдВ рдЕрдВрддрд┐рдо рд╢реЗрд╖ рдирд┐рдпрдВрддреНрд░рдХ рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, "рдПрдВрдбрдлреНрд▓реЛ" рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдШрдЯрдирд╛ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 @OnEvent(type = EventConstants.END_FLOW) public void onCloseTab(StateEvent event) { ... } 


рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдЬреБрдбрд╝реЗ рдЯреИрдм рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд▓реЗрдХреНрд╕рдбреЗрди рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо, рджреВрд╕рд░реЗ рдорд┐рдирдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд▓рд╛рдн:



рдиреБрдХрд╕рд╛рди:



рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ, рддреЛ рд▓реЗрдХреНрд╕рдбреЗрди рд╡реЗрдм рдлреНрд▓реЛ , рд╕рд╛рде рд╣реА рд▓реЗрдХреНрд╕рдбреЗрди рдкреНрд░рд╢рд╛рд╕рди, рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рддрдХрдиреАрдХреА рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдЕрдкрд╛рдЪреЗ 2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд▓реЗрдЦ рдХрд╛рдлреА рдмрдбрд╝рд╛ рдирд┐рдХрд▓рд╛ред рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In175507/


All Articles