Actionforward:
Actionforward是struts中的一个基本类。作用就是告诉前端控制器ActionServlet下面转向哪个页面。在struts中,这被封装成了一个对象。
在struts中的代码中的在代码中取名称。在配置文件中,取真实的路径来解除了网页与网页之间的耦合。在struts的框架中,action扮演的是mvc中c的角色,作用只是根据逻辑,分发到各个具体的m来处理。所以如果把网页写入代码之中,那么m和c就产生了耦合。因为m的改动肯定需要改动c的分发逻辑。而struts的处理方式正好解决了这个问题。
好了说了这么多,来讲讲具体怎么操作了。
最简单的就是在代码中action TestAction中设定excuse方面的返回值设为
- return mapping.findForward("success");
然后再在配置文件中加入
- <action path="/dyanactionform"
- type="TestAction"
- name="dynaForm"
- scope="request"
- >
- <forward name="success" path="target.jsp"/>
- </action>
当然,你还可以对于一些常用的页面,怎是可以设置为:
- <!---------定义全局的forward变量----------------->
- <global-forwards>
- <forward name="login" path="/login.jsp" redirect="true"/>
- </global-forwards>
转向分为两种,一种是forward,另一种是redirect。在struts中,默认是forward,如果要转成redirect。怎是如上一个实例中,加入redirect属性为true。
关于forward,最后就是动态forward了
其实看段代码就能明白了,就是自己创建一个actionforward,传回去。
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- String page = request.getParameter("page");
- ActionForward af = new ActionForward();
- af.setPath("/page" + page + ".jsp?name=Tom");
- return af;
- }
ActionMapping
1、struts-config.xml文件中,每个标签对应一个ActionMapping实例
2、了解标签中的forward和unknown属性的含义 (forward 属性,使用在action中没有任何操作,而是直接跳入Action页面的情况。 unknow属性,表示提交了没有Action名字的操作。比方说web-xml中配置的是*.do.配置文件中没有XX.do的时候,会找存放ACTion的Hashmap中第一为unknow属性为true的。但是xx.dox则会报错。)
以上两点,基本从初学角度来书足够了。
ActionForm
这里就介绍一个reset方法。这个方法是叫做重置。但是这是每次调用的时候,会自动执行from中的一个方法。
比方说A页面,转入一个action1,然后再去页面B,再进入action2.……那么在进入action1和action2之前,会调用一次reset方法。