strutsOGNL表达式
2016-12-02 20:33
417 查看
原文:http://www.cnblogs.com/rongfengliang/articles/3309229.html
value="#xx" /> struts页面中不能单独使用,el可以单独使用 ${sessionScope.username}
页面取值区别:
2默认的表达式语言。是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。[/b]
1.#符号的用途一般有三种。
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext.getContext();;#session.msg表达式相当于ActionContext.getContext().getSession().
getAttribute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
<p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p>
<p>不使用%:<s:url value=”#foobar['foo1']” /></p>
<p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
<p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p>
<p>不使用%:<s:url value=”#foobar['foo1']” /></p>
<p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>
3.$符号
符号主要有两个方面的用途。在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在
{min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为min为
{max}之间!</message>
</field-validator>
</field>
</validators>
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为min为
{max}之间!</message>
</field-validator>
</field>
</validators>
el表达式跟ognl表达式的区别(用法和页面取值) 转
1.区别
用法区别:OGNL是通常要结合Struts 2的标志一起使用,如<s:propertyvalue="#xx" /> struts页面中不能单独使用,el可以单独使用 ${sessionScope.username}
页面取值区别:
名称 | servlet | ognl el |
parameters | request.getParameter("username") | #username ${username} |
request | request.getAttribute("userName") | #request.userName ${requestScope.username} |
session | session.getAttribute("userName") | #session.userName ${sessionScope.username} |
application | application.getAttribute("userName") | #application.userName ${applicationScope.username} |
attr | 用于按request > session > application顺序访问其属性(attribute) | #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为 |
2.ognl讲解
[b]OGNL[b]是[/b]Struts2默认的表达式语言。是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。[/b]
1.#符号的用途一般有三种。
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext.getContext();;#session.msg表达式相当于ActionContext.getContext().getSession().
getAttribute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
<p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p>
<p>不使用%:<s:url value=”#foobar['foo1']” /></p>
<p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
<p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p>
<p>不使用%:<s:url value=”#foobar['foo1']” /></p>
<p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>
3.$符号
符号主要有两个方面的用途。在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在
{min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为min为
{max}之间!</message>
</field-validator>
</field>
</validators>
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为min为
{max}之间!</message>
</field-validator>
</field>
</validators>
相关文章推荐
- JAVA 教训 导出calss文件 jdk版本
- 关于java线程的一些了解
- Java运行时异常与普通异常的区别
- 500 G JAVA视频网盘分享
- ssh:配置异常:Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.transaction.spi.Transacti
- 过滤器(Filter)应用之------设置页面缓存、用户的自动登录和敏感词过滤
- java-20161202-基础易错题集合解析
- 第7章 Spring Boot的Web开发
- IDEA中创建maven管理的Spring项目
- struts配置文件详解
- springMVC笔记系列(16)——模型数据处理篇 之 @ModelAttribute注解
- struts2 中映射文件 一个列在resultMap中引用2次必须都列出来
- sudo yum upgrade nss解决java.security.KeyException错误
- Spring 使用JSTL标签显示后台数据
- Java设计模式之代理模式
- Java实现(01)——工厂模式(Factory Pattern)
- spring声明式事务 同一类内方法调用事务失效
- 深入理解java 整型数, Integer的缓存
- java基础部分总结
- Java “Unhandled exception type Exception”错误提示 (转)