码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-11-14 09:56:43      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:action传数据   struts2.0   

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”获取值。


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:action传数据   struts2.0   

原文地址:http://blog.csdn.net/tuke_tuke/article/details/49833729

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!