今天遇到个问题。
页面有a,以及另外一个输入用户名密码的b。
在页面a上提交后,后台action a进行处理,如果满足某个条件,就action a跳转到页面b输入用户名密码。页面b上点击提交,会到action b中进行用户密码的验证,如果验证通过,又会重新进入action a执行。
因为在页面a上提交了比较多的参数,所有我想:
在action a中,跳转到页面b之前,将整个request放到session中。
如:热quest.getsession.setattribute("oldReq",request).
然后,在验证用户名密码后,重新进入action a时,用
request = (HttpServletRequest)request.getsession.getattribte("oldReq");
又重新取出来。
但是,结果是,取出来的request,调用requestz中的所有参数都为空了。
我的理解是,第一个set的时候,写入的是request对象的内存地址。而get后,对应地址的对象已经不存在了。
在这里问下,有什么其他方法没呢?
因为request的参数较多,比较麻烦用parameter来做。
[b]问题补充:[/b]
采用playfish 的思路是这样的,但是因为a页面是post的,所以采用了一个循环,从request将parameter都取出来,然后存入session。在action b跳回action a的时候,采用new ActionForward(url)的形式进行。在action a中就可以直接用request.getparamter了。
这样那个主要是兼容以前写的代码