一直以来都知道Struts2的OGNL支持在前台调用后台的静态方法,以前也用过,但用的比较少,今天自己重新开始了一个新的项目,在实现一个功能的时候用到了Struts2的在前台调用后台的静态方法,弄了半天没有出来结果,原来是自己没有在Struts的配置文件里面申明可以在前台使用后台的静态方法,故写出来供自己以后参考参考,并以此为教训。
假设有一个com.xxx.util.Util类,其中有一个叫sayHello的公共静态方法:
public static String sayHello(String name) {
return "HELLO " + name;
}
那么在前台就可以这样来调用该静态方法:
<:property value="@com.xxx.util.Util@sayHello('tiantian')"/>
要使在前台能够顺利的调用后台的公共静态方法,还需要在Struts的配置文件里面申明可以在前台调用后来的静态方法
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
分享到:
相关推荐
Struts2 OGNL调用公共静态方法 一直以来都知道Struts2的OGNL支持在前台调用后台的静态方法,以前也用过,但用的比较少,今天自己重新开始了一个新的项目,在实现一个功能的时候用到了Struts2的在前台调用后台的静态...
OGNL(Object-Graph Navigation Language)是Struts2框架中的一个重要组件,用于在Web应用中访问和操作Java对象的属性,调用其方法,以及执行类型转换等操作。 OGNL是对象图导航语言的缩写,它是一种功能强大的...
在 Struts 2 中,OGNL 是默认的表达式语言,原因是它相对其它表达式语言具有多个优势,例如:支持对象方法调用、支持类静态的方法调用和值访问、支持赋值操作和表达式串联等。 在使用 OGNL 时,经常遇到的问题是 #...
Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...
在 Struts2 中,可以使用 OGNL 来访问 ValueStack 中的静态方法,例如: <s:property value="@com.bjsxt.struts2.ognl.S@s()"/> 这将调用 com.bjsxt.struts2.ognl.S 类的静态方法 s()。 四、访问 ValueStack 中的...
这篇概述将深入探讨如何在Struts2中使用OGNL来操作List、Set、Map以及访问方法和静态变量。 1. **OGNL基本概念**:OGNL是基于对象和图形的表达式语言,它允许开发者以简洁的语法动态地访问和修改对象属性。在Struts...
Struts2是一个流行的Java web框架,它利用OGNL(Object-Graph Navigation Language)作为其核心表达式语言。OGNL是一种强大的表达式语言,允许开发者在Java对象之间导航和操作数据。在Struts2中,OGNL被广泛用于访问...
### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...
Struts2_OGNL笔记主要关注的是如何在Struts2框架中使用OGNL(Object-Graph Navigation Language)表达式语言。OGNL作为一种强大的表达式语言,常用于Struts2的视图层,允许开发者轻松地访问和操作Java对象的属性。 ...
3. 开启严格模式:在Struts2配置中启用`struts.ognl.allowStaticMethodAccess`为`false`,限制静态方法的调用。 4. 使用最新版本:定期更新Struts2框架,以获取最新的安全补丁。 总结,OGNL在Struts2框架中起着至关...
3. **调用静态方法**:在OGNL中,可以使用`@`符号来调用静态方法,如`"@java.lang.Integer@toBinaryString(10)"`。如果方法属于默认类(如`java.lang.Math`),可以直接使用`@@`来调用,如`"@@min(4,5)"`。 4. **...
2. **支持类静态的方法调用和值访问**:可以通过特定格式(`@[类全名(包括包路径)]@[方法名|值名]`)访问静态方法或常量,例如 `@java.lang.String@format('foo%s', 'bar')` 或 `@tutorial.MyConstant@APP_NAME`。...
访问`A`类的静态变量`a`,`@net.ilkj.ognl.A@findA()`调用静态方法`findA()`。 **Struts2的标签库** Struts2的标签库分为UI标签(UI Tags)和非UI标签(Non-UI Tags)。UI标签主要用于创建HTML表单,而非UI标签则...
3. **动态方法调用**:OGNL支持静态方法的调用,这使得开发者能够通过OGNL表达式直接调用类的方法,而不必显式创建该类的实例。 4. **集合操作**:通过OGNL可以方便地进行集合操作,如遍历列表、筛选元素等。 ####...
### Struts2 OGNL 基本用法详解 #### 一、访问值栈中的Action及对象属性 OGNL(Object-Graph Navigation Language)是Struts2框架中用于访问和操作Java对象的一种强大表达式语言。在Struts2中,OGNL主要用于访问值...
2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联...
相比EL(Expression Language)表达式,OGNL提供更丰富的功能,如对象方法调用、静态方法调用、值访问以及对集合对象的操作。它的上下文(Context)是一个Map结构,允许存储和访问不同类型的对象,如ActionContext,...
3. 开启`struts.ognl.allowStaticMethodAccess`为false,禁止静态方法调用。 4. 使用`ognl.OgnlValueStack`的`setStrictSecurityManager`方法启用严格的表达式执行策略。 五、示例与实践 让我们通过一个简单的例子...