`
kino
  • 浏览: 104975 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在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 .

 

问题解决,记录备忘!

 

 

分享到:
评论
6 楼 anranran 2009-04-11  
我也遇到这样的问题,用你的方法解决,谢谢
5 楼 x.m.zhang 2008-12-04  
哈哈,谢谢LZ,我用“struts2 ognl 静态方法”搜到你了
4 楼 kino 2008-09-03  
Readonly 写道
kino 写道
网上搜了一下,也未发现相同经历的人。

偶发现很多问题不是搜不到,而是不会搜,你用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用英文关键词搜!
3 楼 kino 2008-09-03  
hsy537 写道
我以前在<s:property/>等一些struts2的标签里面通过ognl调用静态方法是不需要设置的,不知楼主是在哪里调用的

我是在jsp页面里调用的,在使用struts2.1.2之前的版本是不需要设置的。但在struts2.1.2中是要设置的。
2 楼 Readonly 2008-09-03  
kino 写道
网上搜了一下,也未发现相同经历的人。

偶发现很多问题不是搜不到,而是不会搜,你用google搜索:
struts2 ognl static method
第一条就是:
http://www.nabble.com/Struts2---OGNL-Calling-static-method-td18190358.html

别告诉偶你是用百度的...
技术问题用google,八卦问题用百度
1 楼 hsy537 2008-09-03  
我以前在<s:property/>等一些struts2的标签里面通过ognl调用静态方法是不需要设置的,不知楼主是在哪里调用的

相关推荐

    struts2.1.2_ALLlib

    Struts2.1.2_ALLlib是一个集合,包含了Struts2框架在2.1.2版本中的所有核心库和依赖的JAR包。这个压缩包是开发者为了方便快速搭建基于Struts2.1.2的Java Web应用环境而准备的。下面我们将详细探讨Struts2框架及其...

    struts2.1.2_lib

    7. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action对象和视图之间传递数据。例如,`${user.name}`可以获取Action对象中user属性的name字段。 接下来,我们关注...

    struts-2.1.2所有jar包

    Struts 2.1.2 是一个非常重要的版本,在Java EE开发中被广泛使用,尤其在构建MVC(模型-视图-控制器)架构的应用程序时。Struts 2是Apache软件基金会的一个开源项目,它是Struts 1的升级版,提供更强大的功能和更好...

    struts-2.1.2-lib.zip

    7. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts 2中用于表达式语言,它用于在Action和视图之间传递数据,以及在拦截器中访问对象属性。 在"struts-2.1.2-lib.zip"中,你将找到以下关键库文件: -...

    Struts 2 Core 2.1.2 API

    这些属性可以通过OGNL(Object-Graph Navigation Language)表达式在视图层中访问,使得数据绑定变得简单。 5. **OGNL**: OGNL是一种强大的表达式语言,用于在模型、视图和控制器之间传递数据。它可以用来访问对象...

    struts2.1.2+spring2.0.8+hibernate3.3.1架构需要的jar包

    Struts2.1.2、Spring2.0.8和Hibernate3.3.1是经典的Java企业级开发架构,被称为SSH(Struts2、Spring、Hibernate)框架。这些框架组合在一起,提供了完整的MVC(Model-View-Controller)设计模式支持,以及数据持久...

    struts-2.1.2-src.zip

    开发者可以通过OGNL在JSP页面中直接访问Action属性,简化了视图层的开发。 **5. 动态方法调用(Dynamic Method Invocation,DMI)** DMI允许开发者通过Action名称直接调用Action方法,而无需在配置文件中显式指定。...

    xwork-2.1.2 和 ognl 2.6.11 源代码

    2. **上下文映射**:ognl使用Map对象作为上下文,可以在表达式中引用和修改其中的变量。 3. **方法调用**:ognl支持动态调用对象的方法,甚至可以处理带参数的方法。 4. **安全增强**:ognl 2.6.11增强了对表达式...

    ognl2.6.11源码和xwork2.1.2源码

    通过对OGNL2.6.11和XWork2.1.2源码的学习,开发者不仅可以掌握这两个框架的基本使用,还能深入了解它们的设计思想和实现方式,这对于提升Java Web开发的专业技能和解决实际问题具有极大的价值。同时,源码分析也有助...

    struts2.1.2 all

    基于事件驱动的MVC框架struts2的all in one版本

    struts2相关重要资源 ognl,xwork,jdk文档链接

    在这个资源压缩包中,我们关注的是OGNL(Object-Graph Navigation Language)和XWork,这两个组件是Struts2的核心部分,并且与JDK文档紧密相关。 OGNL是一种强大的表达式语言,用于在对象图中导航和操作数据。在...

    struts2.1.6源代码,包括xwork2.1.2和ognl2.6.11的源代码

    这是我找了很久才搞到的东西,用了一个下午搞了visualsvn server,到头来却不能用,还好后来找到了这些资源,所以传上来让大家共享,保证是如题所说的资源。

    struts2-portlet-2.1.2

    在"struts2-portlet-2.1.2"这个压缩包中,我们可能找到了一个整合Struts2和portlet2技术的示例项目。这个例子展示了如何在Struts2框架中创建和使用portlet,以实现更灵活和模块化的Web开发。 Struts2框架的核心特性...

    xwork-2.1.2-sources

    - **OGNL(Object-Graph Navigation Language)**: OGNL是Struts2中用于表达式语言,用于在Action对象、ValueStack和视图之间传递数据。 - **Interceptor(拦截器)**: 拦截器是Struts2的一个强大特性,允许在...

    struts2-spring-plugin-2.1.2.jar

    struts2与spring整合开发包,自己找到到了,想与大家共享;是不需要资源分的。献给那些需要的人。

    java struts2开发总结

    可以直接在HTML的`&lt;a&gt;`标签中使用OGNL,如`&lt;a href="newdetail2.action?nid=&lt;s:property value="nid" /&gt;"&gt;`;使用`s:url`和`s:a`标签组合,如`&lt;s:url id="Newsquerynew" action="querynew.action"&gt;&lt;s:param name=...

    lwip-2.1.2_源码

    另外,lwIP 支持多线程和单线程模式,以及动态和静态内存分配策略,这些都可以在配置文件中调整。 总之, lwip-2.1.2 源码包为嵌入式开发提供了强大的网络通信支持。通过深入研究源码和相关文档,开发者可以定制 ...

    xwork-2.1.2.rar_xwork-2.1.2_xwork-core_xwork-core-2.1.2_xwork2.1

    6. **OGNL(Object-Graph Navigation Language)**:XWork使用OGNL作为默认表达式语言,用于在值栈中获取和设置对象属性,以及进行复杂的表达式运算。 **XWork 2.1.2 版本特性:** - 提高了性能和稳定性,修复了...

    Struts2.1 源码+开发包(项目依赖库)

    1. **拦截器机制**:Struts2的核心特性之一是其强大的拦截器链,它允许我们在请求处理过程中插入自定义的逻辑,如日志记录、权限验证、性能监控等。 2. **动态方法调用**:Struts2支持动态方法调用,使得可以根据...

Global site tag (gtag.js) - Google Analytics