// 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>

解决方案 »

  1.   

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

  2.   


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

  3.   

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

  4.   

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

  5.   

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

  6.   


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

  7.   


    您没明白我的意思,在页面填写数据完成时,点击按钮执行addInfo这个action时就会重定向到listInfo。问题是重定向//param name=" " 写什么? 。当然listInfo是遍历所有数据,也就是添加完成后重定向到遍历数据页面。
      

  8.   

    action中定义的是对象,集合,没有属性,属性单独定义在实体类中。那此时的//param name=" "应该怎么填写?还是一定要在action中 写上 id title 属性get set方法吗?
    参数名可以随便定义,也已定义sid,stitle,一般还是定义有意义的。你还是多去动动手。不要怕,东西都是玩出来的、
      

  9.   


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

  10.   

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

  11.   


    你先把自己的需求想清楚,重定向查询需要把添加的数据传过去吗?传过去真的有用吗?你用添加的数据做列表查询的参数吗?如果必须传,直接<result name="success" type="redirect">
                      ****.action?info.id=${info.id}&amp;info.name=${info.name}
                   </result>
      

  12.   


    你先把自己的需求想清楚,重定向查询需要把添加的数据传过去吗?传过去真的有用吗?你用添加的数据做列表查询的参数吗?如果必须传,直接<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,不过这样不友好。
      

  13.   

    问题解决了,在struts 添加方法中 返回 return list()  也就是遍历的方法就能拿到数据库ID,但是为什么在struts.xml 添加action 我写type=chain 跳转到list的action ,为什么就拿不到ID了,我也不知道为什么。
      

  14.   

    难道非要用这样方式才能实现吗、你就是想添加成功后,在listinfo页面再立马遍历出刚才添加成功的数据是吧,那么你先添加成功后再查一遍不就完了。