struts2学习笔记(五)值栈与ognl
2015-08-01 10:08
489 查看
值栈是对应每个请求对象的一套内存数据的封装,struts2会给每个请求创建一个新的值栈.值栈能够线程安全地为每个请求提供公共的数据存取服务.
ognl引入
<s:property value="">
访问某个范围下的灵气要用#
#parameters请求参数 request.getParameters();
#request 请求作用域中的数据 request.getAttribute();
#session 会话作用域中的数据 session.getAttribute();
#application 应用程序作用域中的数据 application.getAttribute();
#attr 按照 page request session application顺序查找值
狭义的值栈测试
要使用OGNL要在jsp中加入
浏览器中输入:http://localhost:8080/struts2demo/helloAction?valuestackValue=paramvaluedata
显示
还有一个attr前缀
attr:<s:property value="#attr.valuestackValue"/><br>,就不用测试了吧.
二.OGNL访问复杂对象
1.JavaBean对象
jsp中通过 对象名.属性名 访问
2.List对象
List对象[索引].属性名
3.Map对象
Map对象[Key].属性名
三OGNL访问静态方法与静态属性
1.访问静态属性
@类路径@属性
2.访问静态方法
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
@类路径@方法名()
ognl引入
<s:property value="">
访问某个范围下的灵气要用#
#parameters请求参数 request.getParameters();
#request 请求作用域中的数据 request.getAttribute();
#session 会话作用域中的数据 session.getAttribute();
#application 应用程序作用域中的数据 application.getAttribute();
#attr 按照 page request session application顺序查找值
狭义的值栈测试
public String execute() throws Exception { System.out.println("执行HelloAction的execute方法"); setMessage(MESSAGE); //获取ActionContext ActionContext context = ActionContext.getContext(); //取得值栈 ValueStack valueStack = context.getValueStack(); valueStack.set("valuestackValue", "value stack data."); return SUCCESS; }
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>My JSP 'HelloWorld.jsp' starting page</title> </head> <body> Hello World!!!<br> <s:property value="message"/> <s:property value="valuestackValue"/> </body> </html>
要使用OGNL要在jsp中加入
</pre></p><span style="font-size:18px;"><%@ taglib prefix="s" uri="/struts-tags" %> </span><p></p><p>值栈域测试</p><p></p><pre name="code" class="java">public class HelloAction extends ActionSupport { public String execute() throws Exception { System.out.println("执行HelloAction的execute方法"); //获取ActionContext ActionContext context = ActionContext.getContext(); //取得值栈 ValueStack valueStack = context.getValueStack(); valueStack.set("valuestackValue", "value stack data."); //session,application是map类型 context.getSession().put("valuestackValue", "session value data."); context.getApplication().put("valuestackValue", "application value data."); return SUCCESS; } }
<!-- request域中写入数据 --> <% request.setAttribute("valuestackValue", "value request data."); %> <body> <!-- 没有前缀,狭义上的Valuestack --> valuestack:<s:property value="valuestackValue"/><br> <!-- 有前缀 --> parameters:<s:property value="#parameters.valuestackValue"/><br> request:<s:property value="#request.valuestackValue"/><br> session:<s:property value="#session.valuestackValue"/><br> application:<s:property value="#application.valuestackValue"/><br> </body>
浏览器中输入:http://localhost:8080/struts2demo/helloAction?valuestackValue=paramvaluedata
显示
valuestack:value stack data. parameters:paramvaluedata request:value request data. session:session value data. application:application value data.
还有一个attr前缀
attr:<s:property value="#attr.valuestackValue"/><br>,就不用测试了吧.
二.OGNL访问复杂对象
1.JavaBean对象
jsp中通过 对象名.属性名 访问
2.List对象
List对象[索引].属性名
3.Map对象
Map对象[Key].属性名
三OGNL访问静态方法与静态属性
1.访问静态属性
@类路径@属性
2.访问静态方法
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
@类路径@方法名()
相关文章推荐
- eclipse 配置maven插件 以及nuxus 搭建本地私服仓库
- 轻松java学习之路1
- Java注解的使用
- spring mvc 导出 excel
- java二叉树创建的第二种模型
- java 基础知识2
- JAVA 并发编程-线程同步通信技术(Lock和Condition)(十)
- strust2文件上传
- Java基础知识(上)
- 定制Eclipse IDE之功能篇(一)
- SpringMVC处理json数据
- Shiro学习(12)与Spring集成
- 【SpringMVC整合MyBatis】springmvc和struts2的区别
- 【SpringMVC整合MyBatis】spring参数绑定
- java 基础知识1
- java标识符命名规则
- SpringMVC注解
- 我的Android进阶之旅------>解决Bug:打开eclipse报错,发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
- java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题
- spring实现java的邮件发送