OGNL 表達式
- ognl 表達式: 它可以訪問普通方法,s:property 它就類似於jsp 的表達式(在頁面上打印值)
${}
<%= %>
<s:property value="OGNL-Expression"/>
value 屬性中的內容不再是我們看到字符串,它是一個OGNL 表達式(!)
如果想要讓它變成一個普通的字符串,在值外面套上單引號
<s:property value="'OGNL-Expression'"/>
- 在struts.xml 中使用ognl 表達式${} 在括號中寫ognl 表達式
- OGNL 訪問靜態屬性:@全類名@靜態屬性名稱
<s:property value="@java.lang.Integer@MAX_VALUE"/>
- OGNL 訪問靜態方法:@全類名@靜態方法名,在struts2 框架中默認是禁用靜態方法調用的,我們可以通過在struts2 中配置開啓。
//在struts.xml 中添加
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
訪問靜態方法
<s:property value="@java.lang.Math@random()"/>
- OGNL 和List
<s:radio name="gender" list="{'man','women'}" />
{}相當用創建了一個List集合,List屬性中的取值是一個OGNL 表達式
- OGNL 和 map
<s:radio name="gender1" list="#{'1':'男','0':'女'}"/>
#{} 表示創建了一個map,寫法和json數據的格式相似(1爲Key ,’男’爲Value),值作爲Radio 到頁面顯示的內容,Key 做爲Radio 的Value