关于struts2里request对象属性怎么赋值的问题
2个回答
2015-02-01 · 知道合伙人影视综艺行家
关注
展开全部
代码:
<!-- OGNL显示request、response中的值 -->
<h3 align="left">Session和Request值</h3>
request.materialName: <s:property value="#request.materialName" /><br/>
session.materialName: <s:property value="#session.get('materialName')" /><br/>
============================我是分割线===========================
Struts2中将应用范围里的数据以及Action处理的数据都存储在一个区域里。在Struts2中叫做“valueStack”,中文名为“值栈”。而OGNL就是从“值栈”取出数据,并在某些条件下进行数据过滤和计算的表达式语言。在Struts2中值栈作为OGNL的根对象,从值栈中取出自己需要的数据,而且值栈存取数据是按照先入后出的概念。因此查询数据时候往往是值栈中最顶部的数据先被查询出来。更加需要指出的是在值栈中也可以使用索引,可以在指定的索引位置开始搜索数据。
在OGNL中如果搜索的数据不是值栈里存储的数据,而是其他对象中,特别是Struts2的ActionContext中的对象,则在访问这些对象时候,前面要加“#”。比如jsp中访问session和request对象时候代码中在request和session之前就有“#”。
============================我是分割线===========================
从上一段话可知道,如果你要在JSP中显示request里的值,必需要用“#”。
否则Struts2是直接去OGNL根对象valuestack里面取值的。因此取值先后顺序就是先valuestack后ActionContext对象
<!-- OGNL显示request、response中的值 -->
<h3 align="left">Session和Request值</h3>
request.materialName: <s:property value="#request.materialName" /><br/>
session.materialName: <s:property value="#session.get('materialName')" /><br/>
============================我是分割线===========================
Struts2中将应用范围里的数据以及Action处理的数据都存储在一个区域里。在Struts2中叫做“valueStack”,中文名为“值栈”。而OGNL就是从“值栈”取出数据,并在某些条件下进行数据过滤和计算的表达式语言。在Struts2中值栈作为OGNL的根对象,从值栈中取出自己需要的数据,而且值栈存取数据是按照先入后出的概念。因此查询数据时候往往是值栈中最顶部的数据先被查询出来。更加需要指出的是在值栈中也可以使用索引,可以在指定的索引位置开始搜索数据。
在OGNL中如果搜索的数据不是值栈里存储的数据,而是其他对象中,特别是Struts2的ActionContext中的对象,则在访问这些对象时候,前面要加“#”。比如jsp中访问session和request对象时候代码中在request和session之前就有“#”。
============================我是分割线===========================
从上一段话可知道,如果你要在JSP中显示request里的值,必需要用“#”。
否则Struts2是直接去OGNL根对象valuestack里面取值的。因此取值先后顺序就是先valuestack后ActionContext对象
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询