也许是基本得很的问题,但却是很多朋友没有弄懂弄明白的问题,我也是在查了Servlet与Struts才找到问题的解决方法。
问题:
在Action中使用request.setAttribute("Name", Value)的方式设置属性,在通过return mapping.findForward("Forwards")方式跳转,但在对应的JSP页面中无得取得传过来的属性值。
解决:
我们可以在新建Action时,在选择Forwards时,不要选择“Redirect”,或者在struts-config.xml配置文件中,将对应<Action>标签中的<Forward>标签中,设置“Redirect”值为false即可。
原因:
由于request生命周期只在一次请求范围内有效的,所以如果使用了Reditect设置的话,就会将请求重定向,也就是破坏了request生命周期,重新产生一次请求,那么request.setAttribute设置过的属性被清空了。
本文解决了在Struts框架下,Action中通过request.setAttribute方法设置属性后,在JSP页面无法获取到该属性的问题。指出了解决方案及根本原因在于redirect会破坏request生命周期。
592

被折叠的 条评论
为什么被折叠?



