关闭

ongl 公共静态方法

643人阅读 评论(0) 收藏 举报

Struts2的OGNL调用公共静态方法

分类: WEB 433人阅读 评论(0) 收藏 举报

一直以来都知道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)}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Struts2 中 OGNL 如何更简单的访问静态变量和静态方法

在 struts2 标签中是使用 OGNL 来访问对象属性或方法的,也就是访问的 ValueStack 中的值,即 OgnlValueStack。OGNL 也能让你直接访问类的静态变量和静态方法,标准...
  • ye1992
  • ye1992
  • 2013-08-28 16:36
  • 4493

C#中静态函数的使用和属性的用途

namespace 类的基本应用 { public class People { string user_Name; int user_Age; ...
  • anlidengshiwei
  • anlidengshiwei
  • 2014-06-25 15:08
  • 1187

ONGL表达式的用法

一、什么是OGNL,有什么特点?     OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语...
  • dream8062
  • dream8062
  • 2013-07-10 01:48
  • 1720

Swift静态方法

与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方法使...
  • tonny_guan
  • tonny_guan
  • 2014-08-31 20:40
  • 19596

Python类方法、静态方法、全局变量的使用

一、全局变量实现全局变量主要有两种方法:声明法和模块法1、声明法在文件开头声明全局变量variable,在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部...
  • will130
  • will130
  • 2016-01-07 20:39
  • 2882

免费使用公共CDN静态库加速

本文转自:http://www.xcode.me/code/baidu-360-sina-public-cdn 在web开发中我们经常引用第三方框架,几乎所有的网页都使用CSS和JavaScri...
  • kalision
  • kalision
  • 2015-07-31 14:14
  • 1084

JSTL、EL、ONGL、Struts标签的区别与使用

一、JSTL    来源        我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题:      &#...
  • yanqiaoli
  • yanqiaoli
  • 2017-03-11 14:11
  • 552

关于静态方法不能调用类中的非静态属性的理解

class test{ public $a; public function game(){ echo "123"; } public static function name(){ ...
  • Limitless1113
  • Limitless1113
  • 2015-08-24 15:52
  • 2779

php的self关键字和静态方法调用

今天白天在项目开发中遇到一个很诡异的问题,由于第三方没有PHP接口demo,我在封装一个第三方API接口调用的时候,构建一个PHP类,类里面包含了一个私有方法和多个公有静态方法,我在静态方法中都使用了...
  • goen88
  • goen88
  • 2015-10-12 22:04
  • 2509

YII2自定义公共方法

关于YII2如何自定义公共方法在项目中,很多地方都需要公共方法的存在,以提高代码复用性,减少重复开发的时间,那yii2如何定义自己的公共方法呢?
  • menglong_sishui
  • menglong_sishui
  • 2016-01-20 13:53
  • 3768
    个人资料
    • 访问:217312次
    • 积分:3702
    • 等级:
    • 排名:第10163名
    • 原创:124篇
    • 转载:223篇
    • 译文:0篇
    • 评论:12条
    最新评论
    操作系统知识点总结
    回顾面试常考的操作系统知识点