[align=center]Struts2 OGNL[/align]
在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”/>尽心输出!
在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”/>尽心输出!