页面A.jsp中有参数a,提交A.jsp访问A.action。A.action根据参数a查询数据库获得数据转发到页面B.jsp.提交B.jsp访问B.action。若返回input的话,则返回B.jsp。 
问题就是直接返回B.jsp的话,是没有之前查询得到的数据的,难道我只能把A.action的代码在B.action里粘贴一遍,重新做个查询,这样做是不是有点傻啊?有没有更好的办法。还有就是参数a怎么传到B.action里?我目前的方式是把a写到B.jsp的<hidden:> 
里,感觉还是有点傻。求更好的办法。

解决方案 »

  1.   

    可以用session的,但并不是所有的项目中允许乱用session,可以把查询的部分写成一个共通方法,虽然调用两次。但方便管理。
      

  2.   

    回2楼:用session太不规范了。这样很容易引起混乱的。一般session只用来存放用户信息。方便权限验证等。随便一个逻辑的变量就放session,服务器表示鸭梨很大。
    回3楼:我目前就是把查询写成共通的,action直接调用此方法。我就是觉得这样还是有点傻,应该有更好的办法吧。
      

  3.   

    我是菜鸟,我以前也遇到过这种问题,就是在b.jsp中出错了但是b.jsp中当时查出来的信息没了。当时公司里让我解决的办法就是在B.action 中重写validate方法,在这个方法中重新调用一次A.action中的查询,我也觉得很傻,但是人家就让那么做,时间一长我就给忘了。我说点思路吧,不一定对,可以在input中定义一个请求链type="redirectAction"但是不确定参数a能够再次传到A.action,也不确定B.jsp中能够输出你想要的错误信息,可以试一下。
      

  4.   

    还可以把这两个Action合并在一起,A.jsp。B.jsp分别调用Action中不同的方法,这样参数就能共用
      

  5.   

    什么样的业务流程啊,这么复杂
    直接在b.jsp里重新查询一下a.action调用的方法吧