您的位置:首页 > 其它

OGNL访问静态方法,静态属性,集合类等

2012-08-24 15:14 447 查看
新建一个Test类,里面含有静态方法和静态属性(由于篇幅问题。其他基本类的内容不贴出来了)

package hoKing.in.ognl;
public class Test {
public static String STR = "STATIC STRING";

public static String Test() {
return "static method";
}
}
<!--在我们访问静态方法的时候,需要使用@符号,跟上完整的类名,然后在跟@符号,加上具体的静态方法或者属性
在OGNL中使用@@符号可以直接使用Math类的方法,使用方法是@@+对应的Math方法 -->
<li>访问静态方法:<s:property value="@hoKing.in.ognl.Test@test()"/></li>
<li>访问静态属性:<s:property value="@hoKing.in.ognl.Test@STR"/></li>
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>访问普通类的构造方法:<s:property value="new hoKing.in.ognl.User(8)"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问Map:<s:property value="dogMap"/></li>
<!-- 访问Map中key或者value的时候都是使用的复数 -->
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
PS:

访问静态方法在struts2.1以后的版本里面需要设置一个属性,否则系统默认是不支持访问静态方法的(struts2.0版本默认是支持访问静态方法的).具体的方法是在struts.xml里面添加这么一句

<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: