OGNL的使用

对象导航图语言(Object Graph Navigation Language),是应用于Java中的一个开源的表达式语言(Expression Language),它被集成在Struts2等框架中,作用是对数据进行访问,它拥有类型转换、访问对象方法、操作集合对象等功能。
作用:
1、支持对象方法调用
2、支持静态方法调用和值访问
3、支持复值操作和表达式串联
4、访问OGNL上下文和ActionContext
5、操作集合对象
入门:

public void demo throw OgnlException{
	OgnlContext context =new OgnlContext();
	Object obj=Ognl.getValue("@java.lang.Math@random()",context,context.getRoot());
}
public void demo1 throw OgnlException{
	OgnlContext context =new OgnlContext();
	//获取OgnlContext数据
	context.put("name","张三");
	String name =(String)Ognl.getValue("#name",context,context.getRoot());
	System.out.println(name);
	//获得Root中的数据
	User user new User();
	user.setName("李四");
	context.setRoot(user);
	String name1 =(String)Ognl.getValue("#name",context,context.getRoot());
	System.out.println(name1);
}

EL特殊字符:
1、#号的使用
获取context的数据

<s:property value='#request.name'>

构建一个集合

<s:iterator value="#{'aaa':'111','bbb':'222' }" var="entry">
	<s:property value="key"/>------<s:property value="value"/></br>
	<s:property value="#entry.key"/>------<s:property value="#entry.value"/></br>
</s:iterator>

<s:radio list="#{'1':'男','2':'女'}" name-"sex"></s:radio>

2、%号的使用
解析OGNL表达式

<s:textfield name="name" value="%{#request.name}">

不解析OGNL表达式

<s:property value="%{'#request.name'}">

3、$号的使用
在配置文件中

<action name="download" class="com.stu.action.DownloadAction">
		<result type="stream">
			<param name="Content-Type">文件类型</param>
			<param name="Content-Disposition">attachment;filename=${文件名}</param>
		</result>		
</action>

此博客仅记录自己的学习,如有雷同或错误,欢迎联系作者,共同探讨,共同学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值