巨分求关于struts2如何从一个action中跳转执行另一个action中的一个方法,如何传参? 200
现在我这有2个action,一个是UserAction,另一个是TypeAction。UserAction中的用户登录方法中如果登录成功会有一个user对象,并且直接跳转...
现在我这有2个action,一个是UserAction,另一个是TypeAction。UserAction中的用户登录方法中如果登录成功会有一个user对象,并且直接跳转执行TypeAction中的一个关联的显示方法,需要用到user对象。
所以,我必须把UserAction中的user对象传到TypeAction中。
我在UserAction中配置了跳转视图,type用的是redirect,表示跳转执行名字为moneyType的Action的searchAllTypes方法
<result name="loginSuccessResult" type="redirect">moneyType_searchAllTypes
</result>
但是这样的话user对象没有传过去,而searchAllTypes方法是需要用到user对象。之所以用redirect类型跳转,是为了保证
浏览器的地址是指向searchAllTypes方法的地址,如果使用type="chain",虽然user对象的值过去,但是本质上这是转发,浏览器的
地址依旧指向的是登录方法不会改变,如果用户刷新当前页面的话,会变成继续重新登录一次,再查询(并且我已经做了登录保护,如果已经登录了该账户,那么其他人就无法在登录
,只有等当前用户退出),所以浏览器的地址必须指向新的。
同时,我也不能采用在moneyType_searchAllTypes后面直接加参数(moneyType_searchAllTypes?xx=xx)这种方式,因为这样的话,会直接在浏览器暴露我的参数名和方式
,moneyType_searchAllTypes?xx=xx
我希望的是既跳转(url有变化),同时user对象能传过去,并且不使用浏览器直接get的方式。
希望能有熟悉struts2的朋友帮助下,谢谢。
这是完整配置。
<action name="user_*" class="userAction" method="{1}">
<result name="loginSuccessResult" type="redirect">moneyType_searchAllTypes
</result>
</action>
<!-- moneyTyep的action -->
<action name="moneyType_*" class="moneyTypeAction" method="{1}">
<result name="searchAllSuccess">/pages/moneyTypeResult.jsp</result>
</action> 展开
所以,我必须把UserAction中的user对象传到TypeAction中。
我在UserAction中配置了跳转视图,type用的是redirect,表示跳转执行名字为moneyType的Action的searchAllTypes方法
<result name="loginSuccessResult" type="redirect">moneyType_searchAllTypes
</result>
但是这样的话user对象没有传过去,而searchAllTypes方法是需要用到user对象。之所以用redirect类型跳转,是为了保证
浏览器的地址是指向searchAllTypes方法的地址,如果使用type="chain",虽然user对象的值过去,但是本质上这是转发,浏览器的
地址依旧指向的是登录方法不会改变,如果用户刷新当前页面的话,会变成继续重新登录一次,再查询(并且我已经做了登录保护,如果已经登录了该账户,那么其他人就无法在登录
,只有等当前用户退出),所以浏览器的地址必须指向新的。
同时,我也不能采用在moneyType_searchAllTypes后面直接加参数(moneyType_searchAllTypes?xx=xx)这种方式,因为这样的话,会直接在浏览器暴露我的参数名和方式
,moneyType_searchAllTypes?xx=xx
我希望的是既跳转(url有变化),同时user对象能传过去,并且不使用浏览器直接get的方式。
希望能有熟悉struts2的朋友帮助下,谢谢。
这是完整配置。
<action name="user_*" class="userAction" method="{1}">
<result name="loginSuccessResult" type="redirect">moneyType_searchAllTypes
</result>
</action>
<!-- moneyTyep的action -->
<action name="moneyType_*" class="moneyTypeAction" method="{1}">
<result name="searchAllSuccess">/pages/moneyTypeResult.jsp</result>
</action> 展开
4个回答
展开全部
<action name="user_*" class="userAction" method="{1}">
<result name="success" type="redirectAction">
moneyType_searchAllTypes?user1=${user1}& amp;user2=${user2}
</result>
</action>
大概是这样的,多个参数用& amp;隔开,把空格去掉
<result name="success" type="redirectAction">
moneyType_searchAllTypes?user1=${user1}& amp;user2=${user2}
</result>
</action>
大概是这样的,多个参数用& amp;隔开,把空格去掉
更多追问追答
追问
额,我前面说了,不能直接以get方式提交
追答
那就是这种情况了,你试试
xxx
moneyType_searchAllTypes
${user1}
2013-09-29
展开全部
<action name="user_*" class="userAction" method="{1}">
<result name="success" type="redirectAction">
moneyType_searchAllTypes?us
<result name="success" type="redirectAction">
moneyType_searchAllTypes?us
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的result标签里的type属性值改为redirectAction,后面写你要跳转的方法。
追问
没回答关键的地方,关键是要如何把user这个对象传过去?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<result name="loginSuccessResult" type="chain">Action名称!action中的方法.action
</result>
</result>
追问
请看清我的需求说明,谢谢~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询