java ognl表达式_java之struts2之OGNL表达式

struts2推荐使用ognl表达式

ognl: object graph navigation language 对象导航图语言

如:school.teacher.address="北京"

1. ognl的使用

public classOgnlTest {public static void main(String[] args) throwsOgnlException {//ognl将数据分为两类;常用的和不常用 大的和小的//把常用的数据放在 获取方便的地方 把不常用的数据放在获取麻烦一点的地方。//在ognl中 把常用的数据放在 根对象(root) 不常用的数据放在context(上下文)---是一个map; Ognl.getValue("取值", map(map对象), user(根对象)),取值如果直接如”user”怎取根对象,如果“#address”取map中的对象

Map map = new HashMap();

map.put("address", "北京昌平");

map.put("user", new User("张三","1111"));

User user= new User("siggy","2222");//ognl表达式获取根对象的数据 直接获取即可

System.out.println(Ognl.getValue("name", map, user));//ognl表达式获取上下文对象 需要加#获取

System.out.println(Ognl.getValue("#address", map, user));

System.out.println(Ognl.getValue("#user.name", map, user));

}

}

在struts2中可以通过ognl表达式获取数据,在strut2将ActionContext对象作为ognl的上下文对象,ValueStack作为ognl的根对象。

ValueStack是一个栈接口,称为值栈。在一个请求来时会创建一个ValueStack,将Action的属性值放入值栈中。创建Action处理类后将值栈中的属性值设置到处理类中上。Action中的属性值会放入到ValueStack。在请求结束时ValueStack消亡。

2.在struts2中使用ognl表达式获取值,需要添加strut2的标签库,并且需要使用特定的标签来获取值。

导入标签库

使用标签获取

欢迎使用系统---从值栈中获取
欢迎使用系统---从ActionContext--session中获取
欢迎使用系统---从ActionContext--attr中获取
欢迎使用系统---从ActionContext--parameter中获取
欢迎${sessionScope.currentUser.name }使用系统---从ActionContext中获取

非值栈方式使用

6e3b6b2cb619179574ad95e2eeb1d68e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值