万远翔网站建设,建什么网站能百度收录,解析域名就可以做网站,做博客网站目录
概念
基本原理
基本语法
1、访问Root区域对象基本语法 2、访问Context区域对象基本语法
符号含义 概念
Object-Graph Navigation Language 对象-图形导航语言#xff0c; 主要用于访问对象的数据和方法。
基本原理
主要由3部分构成#xff1a;1.OGNL引擎 … 目录
概念
基本原理
基本语法
1、访问Root区域对象基本语法 2、访问Context区域对象基本语法
符号含义 概念
Object-Graph Navigation Language 对象-图形导航语言 主要用于访问对象的数据和方法。
基本原理
主要由3部分构成1.OGNL引擎 负责解析ONGL表达式定位数据。解析表达式的过程包括词法分析、语法分析和执行。词法分析将表达式分解为标记语法分析将标记转换为语法树执行遍历语法树执行表达式。
2.Root根存储区Object类型 Root根存储区是一个特殊的对象它是OGNL表达式的起点。OGNL表达式可以从Root根存储区开始然后沿着对象图向下导航访问对象的属性、方法和数组元素。在Java Web应用程序中Root根存储区通常是一个JavaBean对象。在Spring框架中ModelAndView对象通常作为Root根存储区它包含了需要在JSP页面中显示的数据。
3.Context变量存储区Map类型 是 一个Map对象用于存储OGNL表达式中使用的变量。可以使用#符号引用Context变量存储区中的变量。
基本语法
1、访问Root区域对象基本语法 --访问简单数据属性 例如name --访问数组或List集合属性[0] 例如arr[1] --访问Map集合属性[key]或属性.key 例如map.two或map[two] --访问方法属性值.方法(), 例如list.size() --访问构造方法new 包名.构造方法 例如new java.util.Date() --访问静态成员包名.类名成员 例如java.lang.MathPI --创建List对象{元素1,元素2} --创建Map对象 #{key1:value1,key2:value2} 2、访问Context区域对象基本语法
使用Context变量存储区中的变量 #context.user.name John #context.user.age 30 例如 Welcome, ${#context.user.name}! You are ${#context.user.age} years old.
符号含义
#引用上下文对象通常是Action或ValueStack对象。 %引用ActionContext对象它包含Action执行的上下文信息。 $引用请求参数例如 $paramName 引用名为 paramName 的请求参数。 引用类静态方法或属性例如 java.lang.MathPI 引用Math类的PI属性。
除了这些符号外OGNL还支持许多其他运算符和表达式例如算术运算符、逻辑运算符、比较运算符、正则表达式等。例如#符号 引用上下文变量关于OGNL 的上下文对象类型【获取属性值】 1javaBean对象例如上面的User则 OGNL 表达式格式必须为 #{属性名}
2map 对象OGNL 表达式格式为 #{key}
3简单类型对象基本类型、String类型OGNL 表达式格式为 #{随便造}
4操作集合对象
构造map对象,例如
#{foo1:bar1, foo2:bar2}
构造list对象例如
{男,女}
%符号 %符号的用途是在标志的属性为字符串类型时计算OGNL表达式的值。例如
s:set namefoobar value#{foo1:bar1, foo2:bar2} /
p不使用s:url value#foobar[foo1] //p
p使用s:url value%{#foobar[foo1]} //p
结果 不使用%#foobar[foo1] 使用%bar1符号 类静态的方法|值调用格式为[类全名(包括包路径)][方法名|值名]例如
java.lang.Stringformat(foo%s,bar)--调用类静态方法
java.lang.StringCASE_INSENSITIVE_ORDER--访问类的静态值
更多可以参考官网文档OGNL - Apache Commons OGNL - Language Guide