`

struts2 Ongl使用记录

阅读更多
struts2 ognl表达式使用以及#、$ 、%使用方法:

#拥有几种用途:
    1.用于访问ActionContent相关属性,如#parameters.username[0] / #session.username / #application.password  / #attr.username.
    2.用于集合操作的投影和选择,如books.{?#this.price<35}.{bookName},其中(?#this.price<35)用于选择价格小于35的所有书籍,其中?代表将所有符合条件的书籍PO
    挑选出来组成一个子集合。^代表把符合条件的第一个元素提取出来,而$代表将符合条件的最后一个元素提取出来。而{bookName}用于将所有的书籍名称挑选出来组
    成一个String的List。#this仅仅用于代表当前迭代的元素。
    3.构建map对象.#{"key1":"value1","key2":"map2"..}
    4.用于引用Ognl的非根部元素。如#manager.username相对于((Manager)get("manager")).getUsername(),而manager.username相当于getManager().getUsername()
    其他使用场景:
    #books[1]、 #foo["key"]
   
%用于计算ognl表达式,将普通字符串转换为ognl表达式进行计算:
%{books[1]}

$主要用途:
1.在struts的配置文件srtruts.xml中引用数据:
<action name="login" class="com.sz.login" method="login">
<result name="success">index.jsp?username=${username}&password=${password}</result>
</action>

${username}、${password}表达式用于从ValueStack元素里获取响应属性值,访问过loginAction后,login就被放到vs的顶端,而vs又是OgnlContext的roo,
所有就可以直接访问。

2.在struts的校验文件中,或国际化资源文件中
<field name="price">
<validator type="int">
<param name="min">50</param>
<param name="max">500</param>
<message>the price must between ${min} and ${max}</message>
</validator>
</field>

strutsOgnl功能点:

1.支持字段访问
   %{username}
2.支持方法调用(包括静态方法调用)
   %{@@max(20,50)} %{getUsername()} == %{username}  %{#manager.getWelcomeInfo()}
3.支持数组、集合、map等对象数据的访问
   %{foo[1]} %{infoMap["kk"]}
4.支持投影、选择操作
     %{books.{?#this.price<35}.{bookName}}
5.支持lambda表达式 :[....],定义一个函数,并通过,调用该函数
   #fact=:[#this<35?#this:#this*#fact(#this-1)], #fact(50)
分享到:
评论

相关推荐

    struts2 ongl包源码

    这个压缩包包含了Struts2中的ONGL包源码,对于理解Struts2的工作原理和深入学习OGNL的使用非常有帮助。 OGNL是Object-Graph Navigation Language的缩写,它的主要功能是在对象图中导航并执行操作。在Struts2中,...

    Java struts2 ongl 标签 jsp页面

    例如,在提供的代码片段中,可以看到`&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;`引入了Struts2的标签库,这使得在JSP中可以方便地使用OGNL表达式来操作页面上的Java对象。 ```jsp ("sex", Sex.MALE); %&gt; This ...

    struts2中ongl表达式的使用和具体实例应用

    ### Struts2中OGNL表达式的使用与具体实例解析 #### 一、OGNL概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性值。它广泛应用于Struts2框架中,用于简化...

    Struts2的ONGL详解

    很好的介绍ONGL的相关知识,一看就明白,对想学习struts2或ONGL的人来说是必需的

    Struts2初步使用总结

    拦截器是Struts2框架的核心组件之一,用于实现特定的功能,如输入验证、日志记录等。Struts2提供了一系列默认的拦截器,并允许用户自定义拦截器。 **3.3 ActionMapper** `ActionMapper`负责将HTTP请求映射到对应的...

    struts2jar包

    6. **其他依赖的jar包**:Struts2运行还需要一些其他的库,如freemarker或velocity用于模板引擎,javassist用于动态类生成,log4j或slf4j用于日志记录等。 引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成...

    Struts2漏洞检查工具Struts2.2019.V2.3

    然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3"是一个专门针对这些漏洞进行检测的工具,旨在帮助开发者和...

    留言板留言板struts2留言板struts2

    拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4. **结果类型(Result)**:Action执行完成后,会返回一个结果类型,告诉框架如何处理后续的响应。Struts2内置...

    struts2jar.zip

    3. **Interceptor**:拦截器是Struts2的一个强大特性,它们在Action调用前后执行,可以实现如日志记录、权限验证等功能。 4. **配置文件**:struts.xml是Struts2的主要配置文件,定义了Action、Result和Interceptor...

    Struts2接口文档

    这个“Struts2接口文档”是开发者的重要参考资料,提供了关于Struts2框架内各个组件、类库以及接口的详细说明,帮助开发者深入理解框架的内部工作原理并有效地使用其功能。 Struts2的核心组件包括Action、Result、...

    Struts2视频教程

    - **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...

    使用Struts 2框架开发租房网站

    在开发租房网站的过程中,学生将学习如何创建Action类、配置struts.xml、设计数据库模型、编写DAO和Service层代码、实现页面交互以及使用Struts 2提供的各种功能来优化用户体验。这将帮助他们掌握Web应用开发的基本...

    struts2开发工程 ongl.rar

    本工程"ongl.rar"显然是一个使用Struts2框架进行开发的项目压缩包,包含了必要的源代码和配置文件。以下是关于Struts2开发的一些关键知识点: 1. **Struts2框架核心组件**: - **Action类**:是业务逻辑的载体,...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    Struts2 Struts2 超好的Struts2 pdf 文档

    3. **拦截器(Interceptors)**:拦截器是Struts2的一大特色,它们按照预定义的顺序在Action调用前后执行,可以实现如日志记录、权限验证、性能监控等功能。常见的拦截器有`params`(处理请求参数)、`validation`...

    struts1和struts2的区别

    - **Struts2**: 直接使用Action来处理表单数据,不再需要专门的ActionForm。Action可以是一个普通的Java对象,并且可以通过标签库直接访问其属性。此外,Struts2还支持ModelDriven模式,允许使用模型对象来代替...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2中的ongl表达式相关简介

    ### Struts2中的OGNL表达式相关简介 #### OGNL概述 OGNL(Object-Graph Navigation Language,对象图导航语言)是Struts 2框架的默认表达式语言,它极大地增强了Struts 2的数据访问能力和代码简洁性。OGNL不仅能够...

    Struts2框架使用的所有jar包

    10. `commons-logging.jar`:提供日志记录服务,Struts2和其他许多库都依赖于它。 11. `ognl.jar`:Object-Graph Navigation Language,Struts2使用OGNL作为表达式语言,用于传递值和调用方法。 12. `freemarker.jar...

Global site tag (gtag.js) - Google Analytics