使用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
.
问题解决,记录备忘!
分享到:
相关推荐
第二次修补发生在较新版本的xwork2.1.2中,官方默认设置了SecurityMemberAccess的allowStaticMethodAccess为false,以阻止静态方法的执行,并修改了正则表达式,允许参数名称中包含空格。然而,这些改动并未完全解决...
OGNL(Object-Graph Navigation Language)是Struts2中的主要表达语言,用于在视图层和模型层之间传递数据。比如,`${user.name}`就是一个OGNL表达式,用于获取User对象的name属性。 **6. 视图层技术** Struts2支持...
根据提供的文件信息,本文将详细解释如何通过使用Struts2框架来实现静态及动态树形菜单的方法,并且会深入分析代码中的关键元素和技术要点。 ### 一、项目环境配置 在构建一个支持树形菜单的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项目实战——借还...
{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}{...