struts2中的action之间如何传值 在线等

xajdws 2008-10-28 10:18:35
小弟想把一个action中函数的返回值传到另一个action中应该如何做呀?在struts.xml中应该如何配置。小弟是新手。在线等!!!!!!
...全文
4535 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
azrael6619 2009-05-06
  • 打赏
  • 举报
回复
通过result的type设置,在action之间传参, <result name = "aa" type = "redirect">***.action?name = 123 </result>这种方法不能用啊。。。我试了。。提示这个name出错的。。我用固定值1传过去也是0的。。用变量更是没用啊。。
  • 打赏
  • 举报
回复
<action name="redirectActionPost">
<result type="redirect-action">UrlUriLoad.html?name=${name} </result>
</action>
这样是可以解决传值问题,但如果传的是中文会出现乱码,如何解决?
xajdws 2008-11-02
  • 打赏
  • 举报
回复
我试试,搞定给分
tzb08 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 orz_ORZ_orz 的回复:]
嗯,redirectAction在struts-default.xml里有两个定义,我的错,认错了

<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
[/Quote]

redirectAction也可以呀,学习了!
kissclf 2008-10-30
  • 打赏
  • 举报
回复
redirect-action会把寨中的值清空
你可以使用chain来传递
tzb08 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 tzb08 的回复:]
只是想告诉你用type="redirect-action"这个来解决你的问题啊,这是我做的项目里面用到的,已经成功实现了
[/Quote]

实现也不只有一种,你也可以这样实现:

<package name="public" extends="struts-default">
<!-- Chain creatAccount to login, using the default parameter -->
<action name="createAccount" class="...">
<result type="chain">login</result>
</action>

<action name="login" class="...">
<!-- Chain to another namespace -->
<result type="chain">
<param name="actionName">dashboard</param>
<param name="namespace">/secure</param>
</result>
</action>
</package>
orz_ORZ_orz 2008-10-30
  • 打赏
  • 举报
回复
看来我犯了净信书, 没亲自去查找的错误了
linpyi 2008-10-30
  • 打赏
  • 举报
回复
你jsp怎么进action的就怎么传

用request,application,session都可以传.

你用request传,再另外一个action就用request来获取...一样的性质

orz_ORZ_orz 2008-10-30
  • 打赏
  • 举报
回复
嗯,redirectAction在struts-default.xml里有两个定义,我的错,认错了

<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
tzb08 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 tzb08 的回复:]
不知道这位仁兄我错在哪里了。。。???这是我从我项目配置文件里面copy过来的,我的工程里面怎么就没出错了,你自己的是错的吧

建议你去看看官方文档吧,看看官方文档里面可有
<package name="public" extends="struts-default">
<action name="login" class="...">
<!-- Redirect to another namespace -->
<result type="redirect-action">
<param name="actionName">dashboard </param>
<param name="namespace">/sec…
[/Quote]

写给11楼同志的。。。
tzb08 2008-10-30
  • 打赏
  • 举报
回复
不知道这位仁兄我错在哪里了。。。???这是我从我项目配置文件里面copy过来的,我的工程里面怎么就没出错了,你自己的是错的吧

建议你去看看官方文档吧,看看官方文档里面可有
<package name="public" extends="struts-default">
<action name="login" class="...">
<!-- Redirect to another namespace -->
<result type="redirect-action">
<param name="actionName">dashboard</param>
<param name="namespace">/secure</param>
</result>
</action>
</package>

<package name="secure" extends="struts-default" namespace="/secure">
<-- Redirect to an action in the same namespace -->
<action name="dashboard" class="...">
<result>dashboard.jsp</result>
<result name="error" type="redirect-action">error</result>
</action>

<action name="error" class="...">
<result>error.jsp</result>
</action>
</package>
tzb08 2008-10-30
  • 打赏
  • 举报
回复
只是想告诉你用type="redirect-action"这个来解决你的问题啊,这是我做的项目里面用到的,已经成功实现了
guhongling 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 suhaibolove 的回复:]
把返回值放入session中,如下:

request.getSession().setAttribute(参数名称,参数值);

在另外的action中取值:
request.getSession().getAttribute(参数名称);
[/Quote]

Session不见意用,对性能会有影响。
suhaibolove 2008-10-29
  • 打赏
  • 举报
回复
把返回值放入session中,如下:

request.getSession().setAttribute(参数名称,参数值);

在另外的action中取值:
request.getSession().getAttribute(参数名称);
guhongling 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tzb08 的回复:]
<action name="editmenu" class="LunchClassPackage.MenuAction" method="UpdMenu">
<result name="success" type="redirect-action">managemenu.action </result>
<result name="error">error.jsp </result>
</action>
[/Quote]

按照这个方法配置启动Tomcat时会报错:
严重: Error filterStart
2008-10-29 11:53:15 org.apache.catalina.core.StandardContext start
严重: Context [/struts2] startup failed due to previous errors

我的配置如下:
<action name="updateAction" class="userAction" method="saveOrUpdate">
<result name="edit" type="redirect-action">userAction.action</result>
</action>
tzb08 2008-10-29
  • 打赏
  • 举报
回复
<action name="editmenu" class="LunchClassPackage.MenuAction" method="UpdMenu">
<result name="success" type="redirect-action">managemenu.action</result>
<result name="error">error.jsp</result>
</action>
redlotus_lyn 2008-10-29
  • 打赏
  • 举报
回复
1).
<action name="redirectActionPost">
<result type="redirect-action">UrlUriLoad.html?name=${name}</result>
</action>

2).

<action name="redirectActionPost">
<result type="redirect-action">UrlUriLoad.html</result>
<param name="name">${name}</param>
</action>
fantianxia 2008-10-29
  • 打赏
  • 举报
回复
<action name="updateAction" class="userAction" method="saveOrUpdate">
<result name="edit" type="redirect">userAction.action </result>
</action>
这是重定向,可以到action中或jsp页面中,
但request中参数的值都会丢失的。
hcz202202 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 guhongling 的回复:]
<action name="updateAction" class="userAction" method="saveOrUpdate">
<result name="edit" type="redirect">/userAction?id=${id} </result>
</action>
这种方法也可以。
[/Quote]
这样就可以了
  • 打赏
  • 举报
回复
通过result的type设置,在action之间传参, <result name = "aa" type = "redirect">***.action?name = 123</result>这样决对可以。我试过。
不过,不建议在action直接传递。
加载更多回复(10)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧