社区
Java SE
帖子详情
struts2的 ognl怎么无法访问静态方法?
wonkju
2015-03-22 04:18:31
文档说需要设置常量 struts.ognl.allowStaticMethodAccess 为true, 我在struts.xml上加了.
还是不行.
我的静态方法是共有的.
用ognl可以访问 类中的静态成员. 但是不能访问静态方法. 没思路了...
...全文
129
2
打赏
收藏
struts2的 ognl怎么无法访问静态方法?
文档说需要设置常量 struts.ognl.allowStaticMethodAccess 为true, 我在struts.xml上加了. 还是不行. 我的静态方法是共有的. 用ognl可以访问 类中的静态成员. 但是不能访问静态方法. 没思路了...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wonkju
2015-03-23
打赏
举报
回复
这是个bug, 我结贴了...
wonkju
2015-03-22
打赏
举报
回复
解决了...暂时. 在2.3.20版本中. struts2不推荐访问静态方法. 这个问题还是有争议的. 在内网我搜的时候,还没发现有人发现这个问题. 在google上, 有人说这个2.3.20的一个bug, 有的人说 已经不建议这样访问. 我尝试过,
stackoverflow
中 avijendr 的方式可以解决.
Struts
2
OGNL
调用公共
静态
方法
详细介绍
Struts
2
OGNL
调用公共
静态
方法
一直以来都知道
Struts
2的
OGNL
支持在前台调用后台的
静态
方法
,以前也用过,但用的比较少,今天自己重新开始了一个新的项目,在实现一个功能的时候用到了
Struts
2的在前台调用后台的
静态
方法
,弄了半天没有出来结果,原来是自己没有在
Struts
的配置文件里面申明可以在前台使用后台的
静态
方法
,故写出来供自己以后参考参考,并以此为教训。 假设有一个com.xxx.util.Util类,其中有一个叫sayHello的公共
静态
方法
: public static String sayHello(String name) { return HELLO +
struts
2
ognl
struts
2
ognl
取list ,set map ,
方法
,
静态
变量的值,
struts
2深入浅出(备java基础,javaweb,javaee,框架)
Struts
2框架介绍、工作原理与架构分析、6大配置文件分析使用通配符定义action、动态
方法
调用,ActionContext及ServletActionContext使用,模型驱动、属性驱动,默认转换器的介绍,中的表单校验,中的国际化,文件上传、多文件上传、文件下载,默认拦截器分析、自定义拦截器、
OGNL
表达式、值栈分析及操作、标签、 json使用。
ognl
表达式java使用案例详解(测试通过)
本案例提供
ognl
使用详解,测试通过,只需解压放入自己WEB项目中,执行
struts
_
ognl
包内java文件即可(未提供jia包,若需要可以联系留言发至邮箱),若测试不好可以联系本人提供指导.
Struts
2默认的表达式语言是
OGNL
,原因是它相对其它表达式语言具有下面几大优势: 1、 支持对象
方法
调用,如xxx.doSomeSpecial(); 2、支持类
静态
的
方法
调用和值
访问
,表达式的格式为@[类全名(包括包路径)]@[
方法
名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联 4、
访问
OGNL
上下文(
OGNL
context)和ActionContext 5、操作集合对象 用法:
OGNL
是通常要结合
Struts
2的标志一起使用。主要是#、%和$这三个符号的使用;
OGNL
表达式
struts
2标签
OGNL
(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语言。
OGNL
有如下特点: 1、支持对象
方法
调用,形式如:objName.methodName(); 2、支持类
静态
的
方法
调用和值
访问
,表达式的格式为@[类全名(包括包路)]@[
方法
名 | 值名],例如: @java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculatePrice(),这个表达式会返回80; 4、
访问
OGNL
上下文(
OGNL
context)和ActionContext; 5、操作集合对象。
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章