`
hypgr
  • 浏览: 279963 次
社区版块
存档分类
最新评论

在struts2.1.2中不能使用ognl访问静态方法的原因

阅读更多

<script type="text/javascript"></script>

使用struts, 在jsp页面中,可以通过ognl访问类的静态方法。

 

表达式的格式为@[类全名(包括包路径)]@[方法名 |  值名],例如:@java.lang.String@format('foo %s', 'bar') 。页面的输出结果就是:foo bar

 

在目前的项目中,我们使用了struts最新的版本2.1.2,当我在jsp页面中使用ognl访问类的静态方法时,发现不起作用。也没报错信息,找不到原因。网上搜了一下,也未发现相同经历的人。当我把struts的版本降到2.0.11时,发现是可以访问静态方法的,困惑!

 

最后终于发现了原因,原来是在2.1.2中,如果要通过ognl访问静态方法,必须在struts.properties或者struts.xml中将选项struts.ognl.allowStaticMethodAccess设置为true .

 

问题解决,记录备忘!

分享到:
评论

相关推荐

    Struts2和Webwork远程命令执行漏洞分析1

    第二次修补发生在较新版本的xwork2.1.2中,官方默认设置了SecurityMemberAccess的allowStaticMethodAccess为false,以阻止静态方法的执行,并修改了正则表达式,允许参数名称中包含空格。然而,这些改动并未完全解决...

    struts2学习笔记

    OGNL(Object-Graph Navigation Language)是Struts2中的主要表达语言,用于在视图层和模型层之间传递数据。比如,`${user.name}`就是一个OGNL表达式,用于获取User对象的name属性。 **6. 视图层技术** Struts2支持...

    实现静、动态树形菜单的代码

    根据提供的文件信息,本文将详细解释如何通过使用Struts2框架来实现静态及动态树形菜单的方法,并且会深入分析代码中的关键元素和技术要点。 ### 一、项目环境配置 在构建一个支持树形菜单的Web应用之前,首先需要...

    Java Web程序设计教程

    10.1.3在hibernate中使用jta事务 210 10.1.4并发控制 211 10.2hibernate缓存 213 10.2.1缓存的工作原理 213 10.2.2应用一级缓存 214 10.2.3应用二级缓存 214 10.2.4应用第三方缓存 216 10.3项目实战——借还...

    Java学习笔记-个人整理的

    {2.1.2}Java变量类型}{47}{subsection.2.1.2} {2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}super(), this()}{49}{subsection.2.2.1} {2.2.2}方法重写/覆盖}{50}{...

Global site tag (gtag.js) - Google Analytics