struts2中action向action之间传数据和action向jsp传数据理解

1,在 Action中我们经常会从这个Action跳转到另一个Action中,这时我们就要用到redirect、redirect-action、chain,

      其中redirect和redirect-action是重定向,相当于浏览器二次请求,之前的数据都会丢失,所有的参数、值栈和请求属性都会丢失。chain是服务器转发action,源Action的用户请求参数、值栈、session的数据赋值给目的Action,即在目的action中可以获得源action得到的请求参数值栈,session等数据。

 当我们想在这两个action之间传递参数时:   

  a,使用链接加“?”的方式如果想在请求的过程中添加参数可以像超链接传值一样在最后用"xx?xx=xx" 的形式来传递参数.

如:

<result name="reload" type="redirectAction">/manager/ managerInfo/account.action?参数名=参数值</result>,

如果这里的参数值不是一个固定值可以用"${参 数值}"这种OGNL表达式的形式获取,注意:这里的"参数值"在相应的Action中一定要提供get/set方法,否则将无法获得参数值,当然这里也同样可以取一个 对象的某个属性值即:${对象名.属性名},符合ONGL表达式访问规则,之前写过着方面的文章。

   b,使用子元素的形式。

<span style="background-color: rgb(255, 255, 255);"><action name="action1" method="" class="">
            <result name="success" type="chain">
                <param name="actionName">action2</param>
                <param name="param1">${param1}</param>
                <param name="param2">${param2}</param>
            </result>               
</action>   </span>

注意:
1. 若param1和param2是两个变量, 那么在两个action中都要有他们的getter和setter
2. 若param1是常量,那么在action1中只要有一个param1的getter,在action2中要有param1的getter和setter 

如果在两个action之间直接跳转而不用传参数,struts.xml文件可以和上面一样,只是没有param标签,还可以使用如下配置:

<action name="action1" method="" class="">
   <result name="success" type="redirectAction">action2.action</result> 
</action>

即可

2,struts2 action 向jsp页面传递参数问题

   a,在jsp页面可以使用ONGL表达式访问action中的值栈等

   b,可以使用request.setAttribute("key","value");session.setAttribute("key","value");在相应的jsp页面上可以使用OGNL表达式“#request.key”“#session.key”获取值。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值