在struts2.1.2中不能应用ognl访问静态方法的原因
在struts2.1.2中不能使用ognl访问静态方法的原因
偶发现很多问题不是搜不到,而是不会搜,你用google搜索:
struts2 ognl static method
第一条就是:
http://www.nabble.com/Struts2---OGNL-Calling-static-method-td18190358.html
别告诉偶你是用百度的...
技术问题用google,八卦问题用百度
我是在jsp页面里调用的,在使用struts2.1.2之前的版本是不需要设置的。但在struts2.1.2中是要设置的。
偶发现很多问题不是搜不到,而是不会搜,你用google搜索:
struts2 ognl static method
第一条就是:
http://www.nabble.com/Struts2---OGNL-Calling-static-method-td18190358.html
别告诉偶你是用百度的...
技术问题用google,八卦问题用百度
不会搜,这一点我承认
,我是百度和google都使用,优先用google,但关键词的选择有一个过程,我一开始用的是“struts2 ognl"、"struts2 ognl 静态方法“,这种关键词是在baidu或google.cn里搜不出什么的。我最后还是在google.com搜到的,关键词和你用的简直一样:"struts2.1.2 ognl static method",我把版本号写具体了,因为目前只有这个版本有这个问题。
ps:搜索是门学问,加强学习,特别是关键词的选择!技术问题,最好去google.com用英文关键词搜!
使用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 .
问题解决,记录备忘!
1 楼
hsy537
2008-09-03
我以前在<s:property/>等一些struts2的标签里面通过ognl调用静态方法是不需要设置的,不知楼主是在哪里调用的
2 楼
Readonly
2008-09-03
kino 写道
网上搜了一下,也未发现相同经历的人。
偶发现很多问题不是搜不到,而是不会搜,你用google搜索:
struts2 ognl static method
第一条就是:
http://www.nabble.com/Struts2---OGNL-Calling-static-method-td18190358.html
别告诉偶你是用百度的...
技术问题用google,八卦问题用百度
3 楼
kino
2008-09-03
hsy537 写道
我以前在<s:property/>等一些struts2的标签里面通过ognl调用静态方法是不需要设置的,不知楼主是在哪里调用的
我是在jsp页面里调用的,在使用struts2.1.2之前的版本是不需要设置的。但在struts2.1.2中是要设置的。
4 楼
kino
2008-09-03
Readonly 写道
kino 写道
网上搜了一下,也未发现相同经历的人。
偶发现很多问题不是搜不到,而是不会搜,你用google搜索:
struts2 ognl static method
第一条就是:
http://www.nabble.com/Struts2---OGNL-Calling-static-method-td18190358.html
别告诉偶你是用百度的...
技术问题用google,八卦问题用百度
不会搜,这一点我承认
ps:搜索是门学问,加强学习,特别是关键词的选择!技术问题,最好去google.com用英文关键词搜!
5 楼
x.m.zhang
2008-12-04
哈哈,谢谢LZ,我用“struts2 ognl 静态方法”搜到你了
6 楼
anranran
2009-04-11
我也遇到这样的问题,用你的方法解决,谢谢