struts2 重定向 传参数问题。

J2EE 码拜 10年前 (2015-05-10) 909次浏览 0个评论
 

// struts2 重定向 传参数问题。
<action name="addInfo" class="infoAction" method="add">

  <result name="success" type="redirectAction">

                 <param name="actionName">listInfo</param>

                 <param name=" ">${info.id}</param>

                 <param name=" ">${info.title}</param>

             </result>           //param name=" "应该怎么填写?

</action>


<action name="listInfo" class="infoAction" method="list">

<result name="success">/infolist.jsp</result>

</action>


//infolist.jsp

<s:iterator id="c" value="infos" status="s">

<s:property value="id" /> //id是自增的,别说用转发 type=chain

?<s:property value="title" />

</s:iterator>

不知道楼主用意是什么,为什么要这么写。如果真不知道去struts-config.xml文件查看一下,strut2底层有哪个常量与这种方式有关,就像那个actionName是怎么来的一样!!!
引用 1 楼 u012068397 的回复:

不知道楼主用意是什么,为什么要这么写。如果真不知道去struts-config.xml文件查看一下,strut2底层有哪个常量与这种方式有关,就像那个actionName是怎么来的一样!!!

我的用意很明显啊,点击保存执行addInfo.Action.然而addInfo重定向到listInfo也就是遍历所有数据。可是就是卡在这一步<param name=” “> 不知道这填写什么,试了各种结果都没解决。

//param name=” “应该怎么填写?  参数名,是你需要定义的,然后在action中(infoAction)定义并生成参数的set、get方法,那么你可以直接通过参数获取参数值

这个用不着重定向,直接在add方法里写完自己的逻辑后给info赋值,result写
<result name=”success”>/infolist.jsp</result>
引用 3 楼 hack517 的回复:

//param name=” “应该怎么填写?  参数名,是你需要定义的,然后在action中(infoAction)定义并生成参数的set、get方法,那么你可以直接通过参数获取参数值

action中定义的是对象,集合,没有属性,属性单独定义在实体类中。那此时的//param name=” “应该怎么填写?还是一定要在action中 写上 id title 属性get set方法吗?

表示未曾知道过这种方法,新手!
引用 4 楼 udbwcso 的回复:

这个用不着重定向,直接在add方法里写完自己的逻辑后给info赋值,result写
<result name=”success”>/infolist.jsp</result>

您没明白我的意思,在页面填写数据完成时,点击按钮执行addInfo这个action时就会重定向到listInfo。问题是重定向//param name=” ” 写什么? 。

引用 7 楼 u010131956 的回复:
Quote: 引用 4 楼 udbwcso 的回复:

这个用不着重定向,直接在add方法里写完自己的逻辑后给info赋值,result写
<result name=”success”>/infolist.jsp</result>

您没明白我的意思,在页面填写数据完成时,点击按钮执行addInfo这个action时就会重定向到listInfo。问题是重定向//param name=” ” 写什么? 。

当然listInfo是遍历所有数据,也就是添加完成后重定向到遍历数据页面。

引用 5 楼 u010131956 的回复:
Quote: 引用 3 楼 hack517 的回复:

//param name=” “应该怎么填写?  参数名,是你需要定义的,然后在action中(infoAction)定义并生成参数的set、get方法,那么你可以直接通过参数获取参数值

action中定义的是对象,集合,没有属性,属性单独定义在实体类中。那此时的//param name=” “应该怎么填写?还是一定要在action中 写上 id title 属性get set方法吗?

参数名可以随便定义,也已定义sid,stitle,一般还是定义有意义的。你还是多去动动手。不要怕,东西都是玩出来的、

<param name="info.id">${info.id}</param>
<param name="info.title">${info.title}</param> 
表示无力啊~~~~
引用 10 楼 udbwcso 的回复:
<param name="info.id">${info.id}</param>
<param name="info.title">${info.title}</param> 

这种写法是错误的。

10楼的不可能错的,要使${info.id}有值,必须为info对象添加set方法,获取值必须有它的get方法,,你自己看看怎么做的,
15分
引用 2 楼 u010131956 的回复:

我的用意很明显啊,点击保存执行addInfo.Action.然而addInfo重定向到listInfo也就是遍历所有数据。可是就是卡在这一步<param name=” “> 不知道这填写什么,试了各种结果都没解决。

你先把自己的需求想清楚,重定向查询需要把添加的数据传过去吗?传过去真的有用吗?你用添加的数据做列表查询的参数吗?

如果必须传,直接<result name=”success” type=”redirect”>
                  ****.action?info.id=${info.id}&amp;info.name=${info.name}
               </result>

引用 14 楼 forgetsam 的回复:
Quote: 引用 2 楼 u010131956 的回复:

我的用意很明显啊,点击保存执行addInfo.Action.然而addInfo重定向到listInfo也就是遍历所有数据。可是就是卡在这一步<param name=” “> 不知道这填写什么,试了各种结果都没解决。

你先把自己的需求想清楚,重定向查询需要把添加的数据传过去吗?传过去真的有用吗?你用添加的数据做列表查询的参数吗?

如果必须传,直接<result name=”success” type=”redirect”>
                  ****.action?info.id=${info.id}&amp;info.name=${info.name}
               </result>

谢谢这位大哥给的提醒,想了想,添加数据后重定向确实没必要传到list页面,我遇到一个问题,添加数据后点击保存 直接跳到list页面,但是添加页面的有一个主键自增的ID,怎么才能传到list页面了。
用type=chain不行,但是我点击保存后,就在当前页面,然后点击遍历action连接 到list页面能拿到自增ID,不过这样不友好。

问题解决了,在struts 添加方法中 返回 return list()  也就是遍历的方法就能拿到数据库ID,但是为什么在struts.xml 添加action 我写type=chain 跳转到list的action ,为什么就拿不到ID了,我也不知道为什么。
5分
难道非要用这样方式才能实现吗、你就是想添加成功后,在listinfo页面再立马遍历出刚才添加成功的数据是吧,那么你先添加成功后再查一遍不就完了。。。。
<action name=”errCodeAtion_*” class=”errAction” method=”{1}”>
<result name=”errlist”>WEB-INF/jsp/errlist.jsp</result>
<result name=”detial”>WEB-INF/jsp/rdetial.jsp</result>
<result name=”errcode”>WEB-INF/jsp/errcode.jsp</result>
</action>
<action name=”replyAction” class=”replyAction” method=”reply”>
<result name=”detial” type=”redirectAction”>  
      <param name=”actionName”>errCodeAtion_detial.action?rid=${eid}</param> 
      </result> 
</action>

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明struts2 重定向 传参数问题。
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!