在Struts2中,我们用<s:debug/>
标签就能看到有关调试个详细信息,如图所示:
在用户发送HTTP请求给Struts2框架后,Struts2框架会创建ActionContext、ValueStack和相应的action对象:
而该action对象会放入ValueStack对象中,ValueStack对象则会放入ActionContext对象中。在JSP页面访问context的数据时,都需要用“#”,如:
<s:property value="#attr"/>
但ValueStack是其根对象则不需要,因此,在访问Action对象的属性时,不需要使用“#”。
<s:property value="username"/>
简而言之:
ValueStack很简单,里面放的都是Action的属性你可以直接用property标签加参数名访问Action参数。而Stack Context里面比较乱,常用的有map型的request/session/attr/application,用OGNL访问前面要加上 “#”例如 #session.