Editorial / Best Answer
ravi_1229
1) When first the request is made from a JSP/HTML/XSLT to the server with a particular URI(/something.do), the controll first reaches Web.xml file.
2) it checks the mapping for /something.do in web.xml and finds the ActionServlet and loads ActionServlet.
......
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
.....
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3) As part of loading ActionServlet calls the init() as every other servlet does.
(Note: ActionServlet extends HttpServlet only)
......................
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
........................
4) in init() it takes the init-parameters as struts-config.xml and loads the xml file.
5) then the ActionServlet calls the proceed() of RequestProcessor class.
6) in proceed() , it checks the appropriate mapping for current request, creates and ActionMapping object and maps the URI to the action in the struts-config.xml.
7) then it creates an object to ActionForm associated to that action mapped object
8) calls the setters and reset().
9) if the action tag in struts-config.xml contains validate="true", then the validate method is called.
10) if any validation errors, it return to view component (any jsp,XSLT) which is specified as an attribute of input="/error.jsp"
11) if there are not validation errors, it then creates an Action class for that mapping and search for execute method and executes it.
12) execute method performs the bussinesslogic which you provide and returns with an ActionForward key.
13) now the returned key is searched in the mapping object which is specified as forward tag.
14) it looks for the appropriate view component and performs the getters on that view component and returns the response to the browser.
Simple, Thats it.
Thanks
Ravi
Explain Struts navigation flow
Editorial / Best Answer
ravi_1229Profile Answers by ravi_1229 Questions by ravi_1229
1) When first the request is made from a JSP/HTML/XSLT to the server with a particular URI(/something.do), the controll first reaches Web.xml file.
2) it checks the mapping for /something.do in web.xml and finds the ActionServlet and loads ActionServlet.
......
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
.....
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3) As part of loading ActionServlet calls the init() as every other servlet does.
(Note: ActionServlet extends HttpServlet only)
......................
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
........................
4) in init() it takes the init-parameters as struts-config.xml and loads the xml file.
5) then the ActionServlet calls the proceed() of RequestProcessor class.
6) in proceed() , it checks the appropriate mapping for current request, creates and ActionMapping object and maps the URI to the action in the struts-config.xml.
7) then it creates an object to ActionForm associated to that action mapped object
8) calls the setters and reset().
9) if the action tag in struts-config.xml contains validate="true", then the validate method is called.
10) if any validation errors, it return to view component (any jsp,XSLT) which is specified as an attribute of input="/error.jsp"
11) if there are not validation errors, it then creates an Action class for that mapping and search for execute method and executes it.
12) execute method performs the bussinesslogic which you provide and returns with an ActionForward key.
13) now the returned key is searched in the mapping object which is specified as forward tag.
14) it looks for the appropriate view component and performs the getters on that view component and returns the response to the browser.
Simple, Thats it.
Thanks
Ravi
Related Answered Questions
Related Open Questions