Struts2的OGNL调用公共静态方法

来源:互联网 发布:混凝土软件 编辑:程序博客网 时间:2024/05/01 01:23

一直以来都知道Struts2的OGNL支持在前台调用后台的静态方法,以前也用过,但用的比较少,今天自己重新开始了一个新的项目,在实现一个功能的时候用到了Struts2的在前台调用后台的静态方法,弄了半天没有出来结果,原来是自己没有在Struts的配置文件里面申明可以在前台使用后台的静态方法,故写出来供自己以后参考参考,并以此为教训。

 

假设有一个com.xxx.util.Util类,其中有一个叫sayHello的公共静态方法:

Java代码  收藏代码
  1. public static String sayHello(String name) {  
  2.         return "HELLO " + name;  
  3.     }  

 

那么在前台就可以这样来调用该静态方法:

Html代码  收藏代码
  1. <:property value="@com.xxx.util.Util@sayHello('tiantian')"/>  

 

要使在前台能够顺利的调用后台的公共静态方法,还需要在Struts的配置文件里面申明可以在前台调用后来的静态方法

Xml代码  收藏代码
  1. <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>    
  2. 附录:
  3. OGNL中.[]与.运算符
        EL 提供.和[]两种运算符来存取数据。
        当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如:
            ${user.My-Name}应当改为${user["My-Name"] }
        如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:
            ${sessionScope.user[data]}中data 是一个变量

  4. EL运算符
      1.算术运算符有五个:+、-、*或$、/或div、%或mod
      2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
      3.逻辑运算符有三个:&&或and、||或or、!或not
      4.其它运算符有三个:Empty运算符、条件运算符、()运算符
        例:${empty param.name}、${A?B:C}、${A*(B+C)}

原创粉丝点击