在struts2.1.2中不能使用ognl访问静态方法的原因
使用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.
?
问题解决,记录备忘!
?
?
,我是百度和google都使用,优先用google,但关键词的选择有一个过程,我一开始用的是“struts2 ognl"、"struts2 ognl 静态方法“,这种关键词是在baidu或google.cn里搜不出什么的。我最后还是在google.com搜到的,关键词和你用的简直一样:"struts2.1.2 ognl static method",我把版本号写具体了,因为目前只有这个版本有这个问题。ps:搜索是门学问,加强学习,特别是关键词的选择!技术问题,最好去google.com用英文关键词搜!
5 楼 x.m.zhang 2008-12-04 哈哈,谢谢LZ,我用“struts2 ognl 静态方法”搜到你了 6 楼 anranran 2009-04-11 我也遇到这样的问题,用你的方法解决,谢谢