论坛首页 入门技术论坛

struts2 ognl

浏览 2114 次
锁定老帖子 主题:struts2 ognl
该帖已经被评为新手帖
作者 正文
   发表时间:2009-03-01  
Struts2 OGNL

在JSP中,session、request、application、attr(如果可以就从pageContext查找,否则就依次到 request、session、application中查找)、parameters(用于取URL上的参数,同名的变量可以使用索引)等对象取值时要使用前缀 # 告诉Struts2不要到值栈中查找,例
(1.)#session.infomation,#session[‘student- information’],OGNL中使用 . 或者[‘’]访问对象的属性,两者的区别是当属性中有“-”等特殊字符时,我们需要使用[‘’];

(2.)URL为http://locaohost:9999/struts01/HelloWorld.ok?name=gold& &password=jsmart,如果我想取name的值,需要这样写#parameters.name,取password的值就是 #parameters.password;如果是http://localhost:9999/struts01/HelloWorld.ok? password=gold&&password=jsmart,#parameters.password[0]取的就是gold, #parameters.password[1]=jsmart;

(3.)%{A}所有基于这种形式的内容,除<s:property value="test"/>其他标签引用要加个. property里面,直接写名字就可以了.会被解析并到值栈中求值,也就是会到Value Stack中查找A所代表的值;如果你想A被当作字符串原样传递,那么可以这样表示%{‘A’},当然你直接使用A有的时候也是可以的,但为了通用性,建议使用%{‘A’},以免产生不必要的麻烦。

(4.)OGNL操作集合,例如值栈中存在map,我们可以这样访问map[‘a’],表示访问Map中key值为a的value值是多少,map.size访问大小等等。

(5.)OGNL访问类中的静态变量和静态方法:@完整类名@属性名,@完整类名@方法名,例如:
Package net.ilkj.ognl
Public Class A{
Public static final String a=”1”;
Public static String findA(){Return “2”;}
}
我们就可以在页面上使用<:sproperty value=”@net.ilkj.ognl.A@a”/>尽心输出!

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics