struts2 自动调用request.setAttribute()的地方

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:56:47
在表单里填入的东西

最后可以在结果页面里使用 ${requestScope.xx}显示
说明一定在某个地方被自动调用了request.setAttribute("xx",xxxx);
请问,这个request.setAttribute是在哪个方法里被自动调用了?
是在ActionSupport的execute()里吗?
书上没讲,直接就这么用了,看得我糊涂了。

你可以试验下,在结果页面用
<%=request.getAttribute("xx")%> 也是可以显示的。

不是的,Struts2中的action类中的execute方法的参数中根本没有HttpServletRequest request,有何来Struts1中的request.setAttribute("xx",xxxx); 在Struts2中,只要提交表单数据,就会自动的存入request范围内,自然可以用${requestScope.xx}显示。
Struts2和Struts1有很大的不同,例如获得session,在Struts2中如下
ActionContext.getContext().getSession()
Struts2这么做主要是为了和Servlet的api分离。
详细的你可以看《Struts2权威指南》

Struts2.0里表单提交的属性是通过setter方法设置到Action中对应的属性里的,如果这个属性同时也包含getter方法,则会自动将属性设置到request方法传递到下一个页面,也就是你所说的结果页。