struts2.1访问静态方法需配置OGNL
如题,struts2.1 OGNL访问静态方法需要在struts.xml里边配置:
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
默认是false,可以在struts2-core-2.1.6.jar下org.apache.struts2里的default.properties里边查看到。
页面OGNL访问方式为:<s:property value="@类名@方法名"/>
---------
顺带:
访问Math类静态方法:<s:property value="@@方法名"/>如:<s:property value="@@max(2,3)"/>
--------------------
<body>
<ol>
<li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
<li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问Map:<s:property value="dogMap"/></li>
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
<hr />
<li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
<hr />
<li>[]:<s:property value="[0].username"/></li>
</ol>
<s:debug></s:debug>
</body>
分享到:
相关推荐
- **性能优化**:通过配置合适的拦截器,可以提高应用的性能,例如使用缓存拦截器减少数据库访问,或者使用静态结果类型提高渲染速度。 - **安全考虑**:Struts 2存在一些已知的安全漏洞,如Struts2 CVE漏洞,因此...
标题:“STRUTS2.1z中的OGNL的表达式” 描述:“主要介绍struts2.1中的ognl中的表达式的用法” 知识点解析: ### OGNL (Object Graph Navigation Language) 在Struts2框架中的角色 #### 1. OGNL简介 OGNL是一种...
4. **表达式语言(OGNL)**:Struts2使用OGNL(Object-Graph Navigation Language)作为默认的表示层语言,用于在视图层与模型层之间传递数据,例如在JSP中使用`<s:property>`标签。 5. **结果类型(Result Types)...
- Struts2 2.1及之后的配置: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter <filter-name>struts2 <url-pattern>/* ``` Struts2会读取`struts....
2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 部署描述文件和Struts...
2.1 struts.xml:这是Struts2的主要配置文件,用于定义Action、Interceptor、结果类型等。例如,你可以在这里指定Action类、URL映射、结果页面以及拦截器链。 2.2 Struts标签库:Struts2提供了一套丰富的JSP标签,...
以上内容详细介绍了Struts2框架的核心组成部分和技术细节,包括Action的实现方式、Result的配置方法、模型驱动的概念、异常处理机制、类型转换的实现、输入校验的流程、拦截器的设计与应用以及日志记录的配置。...
9. **注解支持**:从Struts2.1版本开始,框架引入了注解支持,允许开发者在Action类和方法上使用注解来替代XML配置。 10. **AJAX支持**:Struts2提供了Ajax插件,可以方便地与JavaScript库(如jQuery)集成,实现...
2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 部署描述文件和Struts配置文件 ...
9.2.4 访问静态方法与属性 9.2.5 访问数组 9.2.6 访问List、Set、M印集合 9.2.7 投影与选择 9.3 Struts2的标签库 9.3.1 数据标签的应用 9.3.2 控制标签的应用 9.3.3 表单标签的应用 …… 第10章 邂逅数据库持久化...
5.3.3struts.xml的配置 94 5.4值栈与ognl表达式 100 5.5struts2的标签库 103 5.5.1控制标签 103 5.5.2数据标签 104 5.5.3表单标签 105 5.5.4非表单ui标签 107 本章小结 108 课后练习 109 第6章struts2高级...
Struts 2.1是一种MVC框架,支持Action的配置和OGNL表达式语言,Hibernate 3.5是一个对象关系映射(ORM)框架,用于实现Java对象与数据库表之间的映射。Spring 3.0是一个全方位的Java框架,提供了依赖注入(IoC)、...
{2.10.3}静态代码块}{62}{subsection.2.10.3} {2.11}\ttfamily final}{63}{section.2.11} {2.12}\ttfamily abstract}{63}{section.2.12} {2.13}\ttfamily interface}{64}{section.2.13} {2.14}JavaBean规范}{66...
- 如何配置Nginx以支持高并发访问。 **二、Httpclient** - **知识点概述:** - HttpClient的基本使用方法。 - 请求与响应的处理。 - 连接池的管理。 - **面试考察要点:** - 如何使用HttpClient发送HTTP请求。...
Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 ...