OGNL是一种用于访问和设置对象数据的强大表达式语言,它可以自动导航对象图的结构,实现字段类型转换,调用对象方法,访问类的静态成员和方法。
一、为什么使用OGNL
它提供了比jsp内置表达式语言更为强大的功能,例如类型转换功能、静态或实例方法调用、跨集合投影、动态lambda表达式定义等。
二、OGNL基础
1、OGNL上下文的根对象
2、OGNL表达式
集合操作、投影、选择等
三、struts在OGNL基础上的增强
1、值栈:[N]语法、top关键字、访问静态成员
2、struts的命名对象
parameters、request、session、application、attr
四、与jsp2.1的冲突
jsp2.1中#符号已经被jsp内置表达式语言(el)使用,若在ognl中使用#操作符会导致一些问题,需要在jsp容器中禁止使用jsp el。通过在web.xml中添加jsp-config元素配置
<jsp-config>
<jsp-property-group>
<url-pattern>
*.jsp
</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
一、为什么使用OGNL
它提供了比jsp内置表达式语言更为强大的功能,例如类型转换功能、静态或实例方法调用、跨集合投影、动态lambda表达式定义等。
二、OGNL基础
1、OGNL上下文的根对象
2、OGNL表达式
集合操作、投影、选择等
三、struts在OGNL基础上的增强
1、值栈:[N]语法、top关键字、访问静态成员
2、struts的命名对象
parameters、request、session、application、attr
四、与jsp2.1的冲突
jsp2.1中#符号已经被jsp内置表达式语言(el)使用,若在ognl中使用#操作符会导致一些问题,需要在jsp容器中禁止使用jsp el。通过在web.xml中添加jsp-config元素配置
<jsp-config>
<jsp-property-group>
<url-pattern>
*.jsp
</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>