struts(4)

本文详细介绍了Struts框架中的ActionForward组件,包括其在MVC模式中的作用、配置方法及如何实现页面跳转。同时讲解了forward和redirect的区别,并提供了动态forward的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Actionforward:

         Actionforwardstruts中的一个基本类。作用就是告诉前端控制器ActionServlet下面转向哪个页面。在struts中,这被封装成了一个对象。

         struts中的代码中的在代码中取名称。在配置文件中,取真实的路径来解除了网页与网页之间的耦合。在struts的框架中,action扮演的是mvcc的角色,作用只是根据逻辑,分发到各个具体的m来处理。所以如果把网页写入代码之中,那么mc就产生了耦合。因为m的改动肯定需要改动c的分发逻辑。而struts的处理方式正好解决了这个问题。

         好了说了这么多,来讲讲具体怎么操作了。

         最简单的就是在代码中action  TestAction中设定excuse方面的返回值设为

  1. return mapping.findForward("success");

然后再在配置文件中加入          

  1. <action path="/dyanactionform"
  2.         type="TestAction"
  3.         name="dynaForm"
  4.         scope="request"
  5.  >
  6.    <forward name="success" path="target.jsp"/>
  7.  </action>

当然,你还可以对于一些常用的页面,怎是可以设置为:

  1. <!---------定义全局的forward变量----------------->
  2. <global-forwards>
  3. <forward name="login" path="/login.jsp" redirect="true"/>
  4. </global-forwards>

转向分为两种,一种是forward,另一种是redirect。在struts中,默认是forward,如果要转成redirect。怎是如上一个实例中,加入redirect属性为true

关于forward,最后就是动态forward

其实看段代码就能明白了,就是自己创建一个actionforward,传回去。

  1. public ActionForward execute(ActionMapping mapping, ActionForm form,
  2. HttpServletRequest request, HttpServletResponse response)
  3. throws Exception {
  4.    String page = request.getParameter("page");
  5.    ActionForward af = new ActionForward();
  6.    af.setPath("/page" + page + ".jsp?name=Tom");
  7.    return af;
  8. }

ActionMapping

       1struts-config.xml文件中,每个标签对应一个ActionMapping实例

2、了解标签中的forwardunknown属性的含义 forward 属性,使用在action中没有任何操作,而是直接跳入Action页面的情况。 unknow属性,表示提交了没有Action名字的操作。比方说web-xml中配置的是*.do.配置文件中没有XX.do的时候,会找存放ACTionHashmap中第一为unknow属性为true的。但是xx.dox则会报错。)

以上两点,基本从初学角度来书足够了。

ActionForm

     这里就介绍一个reset方法。这个方法是叫做重置。但是这是每次调用的时候,会自动执行from中的一个方法。

       比方说A页面,转入一个action1,然后再去页面B,再进入action2.……那么在进入action1action2之前,会调用一次reset方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值