我的问题:
a.jsp经过a.ation到b.jsp,可以在a.jsp、b.jsp中定义同名的text标签,在action中定义get、set方法,实现传值
但是如果a.jsp经过a.ation,然后直接转到b.action(struts.xml中配置),再到b.jsp,怎样传值呢?(除了用session),
有没有上述类似的方法 啊?

解决方案 »

  1.   

    是一个usecase,从form里面去不就可以吗?
      

  2.   

    取决于你的第一个Action(a.action)的result的type怎么配置。如果配置成重定向(redirectAction或redirect),你就用session吧。虽然有其它方式可以解决,但会把问题复杂化,没必要。如果是配置为chain,则你经历
    a.jsp -> a.action -> b.action -> b.jsp
    之后,在b.jsp是可以直接从a.action中取值的。参考配置如下:
            <action name="a" class="...">
                <result type="chain">b</result>
                <result name="input">/a.jsp</result>
            </action>        <action name="b" class="...">
                <result >/b.jsp</result>
            </action>
    试试吧,按这种配置,你是可以从b.jsp中直接取第一个Action中的值的,惊喜吧?呵呵。
      

  3.   

    <result name="list" type="redirect-action">
              <param name="actionName">b?parm1=${参数的名称}</param>
    </result>注意,上面的b.action不要写成b.action用b就好了
    如果是多个方法就是b!method?p1=p&p2=2...
      

  4.   

    b.jsp是可以这样调用a.action中的value的不过,
    action是基于每个请求的线程的,a.jsp经过a.ation,然后直接转到b.action(struts.xml中配置),再到b.jsp
    你的a 和 b都重新实例化一个线程对象,两个action之间传值,还是用type="redirect-action"好一点,呵呵
      

  5.   

    如果不设置成重定向,在b.jsp中是可以取到a.jsp中的值得,struts2是将action中的属性保存在request范围中的
      

  6.   

    a.ation,然后直接转到b.action可以用request.setAttribute("","");传值.
      

  7.   


    chain本质上是就是转发。转发是服务器端内部的调用,
    重定向是服务器端到客户端再到服务器端的调用。重定向会创建新的请求和响应对象。
    因此,转发到b.action绝对不会损耗比重定向到b.action更多的资源。5楼是暂时糊涂了,还是根本不明白?
      

  8.   


    action的属性还是在action中,只不过可以通过request对象取得。
    详见:http://topic.csdn.net/u/20081022/21/f7ed313a-ff93-4b77-b906-cad8fdc869d1.html第19楼
      

  9.   

    struts 2.0  配置struts.xml 就能实现啊
    <action name ="a" class="">
       <result type="chain" >/....(b的地址)</result>
    </action>
    <action name ="....(b的地址)" class="">
       <result  >/。jsp</result>
    </action>
      

  10.   

    地址栏传值怎么用action获取啊?例如http://sssss.action?eid=101