`

struts2中的OGNL一些用法补遗

阅读更多
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()

不过我认为这种写法是应该尽量避免的,除非有不得不这么做的理由
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics