1、如果Action里有一个字段user,然后jsp里提交user.name,则user的name字段会被自动赋值,但是实际上,User字段没有初始化过,为什么不会NPE呢
这是OGNL在幕后起的作用,user.name是一个OGNL表达式,当OGNL解析器在属性链上发现一个为NULL的属性时,它会尝试创建一个实例并赋值
对于开发者来说,只需要给这个类一个无参构造方法,并为此字段提供一个setter方法即可
2、OGNL表达式还可以用来直接创建List和Map
{1,2,3},这就创建了一个List
#{"key1":"value1","key2":"value2"},这就创建了一个Map
这种语法一般是用在jsp页面里
3、OGNL还可以使用操作符
比如${user.age + 1}
4、用来实现方法调用
<s:if test="page.hasNext()">
</s:if>
5、调用静态方法和字段
@com.huawei.test.Utils@someStaticMethod()
不过我认为这种写法是应该尽量避免的,除非有不得不这么做的理由
struts2中的OGNL一些用法补遗
猜你喜欢
转载自kyfxbl.iteye.com/blog/1669604
今日推荐
周排行