Struts2 - OGNL表示式和Struts2標籤庫
一、OGNL表示式
訪問Action的普通屬性:
<s:property value="msg"/>
訪問Action中物件的普通屬性:<s:property value="user.name"/>
訪問Action中物件的普通方法:<s:property value="user.info()"/>
訪問Action中普通方法:<s:property value="actionMethod()"/>
訪問靜態方法:
<s:property value="@com.xilen.action.StaticCls@stcSay()"/>
訪問靜態屬性:<s:property value="@com.xilen.action.StaticCls@stcMsg"/>
訪問Math類的靜態方法:<s:property value="@@max(2,3)"/>
訪問Action中List|Set|Map:
<s:property value="userList"/>
訪問容器的大小:
<s:property value="map.size()"/>
訪問List中元素的某個屬性的集合(如所有user的name): <s:property value="userList.{name}"/>
訪問List中的元素(物件)的某個屬性的集合中的特定值:<s:property value="userList.{name}[1]"/>
訪問List中的某個元素:
<s:property value="userList[0]"/>
訪問Map中所有的key:<s:property value="map.keys"/>
訪問Map中所有的value:<s:property value="map.values"/>
訪問指定的請求引數(注意:每一個請求引數都是一個陣列):
<s:property value="#parameters.parm"/>
二、Struts2標籤庫
1、<s:property/>
一般格式:
<s:property value="" default="" escape=""/>
屬性說明:
value:預設當OGNL表達式處理,如果只要其當作字串需加單引號
defaulut:預設值,值當作字串
escape:表示對於得到的的字串是否解析為HTML,預設為true(不解析)
使用示例:
<!--獲取ValueStack中的物件-->
<s:property value="user.name"/>
<!--獲取StackContext中的物件-->
<s:property value="#request.id"/>
2、<s:if test=""/>、<s:elseif test=""/>和<s:else/>
<!-- 數值比較 -->
<s:if test="1<2"></s:if>
<!-- 字串比較 -->
<s:if test="'abc'=='abc'"></s:if>
<!-- 獲取parameters中的值做比較(注: #parameters.parm=='parm'不能實現比較) -->
<s:if test="#parameters.parm[0]=='parm'"></s:if>
<!-- 獲取Action中的屬性做比較 -->
<s:if test="user.name=='admin'"></s:if>
3、<s:iterator/>
一般格式:
<s:iterator value="userList" var="u" status="stat" >
屬性說明:
value:OGNL表示式
var:將遍歷的當前物件別名後放至StackContext中
status:當前遍歷的資訊,通過其可取得當前遍歷的count(統計,始於1)、index(索引,始於0)、
even(是否偶數),odd(是否奇數)等
補:另有begin(開始)、end(結束)、step(步長)等
使用示例
<!-- 遍歷普通List -->
<s:iterator value="list" status="stat" >
<s:property value="#stat.index"/> <!-- 當前索引 -->
<s:property value="#stat.odd"/> <!-- 是否為奇數次遍歷 -->
<s:property /> <!-- 獲取當前物件 -->
</s:iterator>
<!-- 遍歷物件List -->
<s:iterator value="userList" var="user" status="stat" >
<s:property value="#user.name" /> <!-- 獲取屬性 -->
<s:property value="#user.name.toUpperCase()" /> <!-- 對屬性新增處理 -->
</s:iterator>
<!-- 遍歷Map -->
<s:iterator value="map" status="stat" >
<s:property /> <!-- 獲取當前key=value -->
<s:property value="key" /> <!-- 獲取當前key -->
<s:property value="value" /> <!-- 獲取當前value -->
</s:iterator>
三、補充
1、使用標籤庫,jsp需新增:
<%@ taglib prefix="s" uri="/struts-tags" %>
2、要訪問靜態類,struts需配置:
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
相關文章
- Struts2的OGNL標籤詳解
- struts2 標籤庫
- Struts標籤、ognl表示式、el表示式、jstl標籤庫這四者之間JS
- struts2標籤總結
- struts2標籤詳解 .
- Struts2 OGNL動態配置result(十八)
- Struts2第九篇【OGNL、valueStack詳解】
- 【Struts2】:基於OGNL的型別轉換型別
- jquery獲取struts2標籤 裡的key valuejQuery
- JSP和El表示式和JSTL標籤庫使用JS
- struts2 標籤的使用之一 s:if,siterator使用
- Struts2中 用OGNL表示式定義字串常量 與單個字元常量需要注意的一個小細節 (轉)...字串字元
- Struts2【UI標籤、資料回顯、資源國際化】UI
- Struts2幾個常用標籤的主要屬性及示例(一)
- 匹配html標籤正規表示式HTML
- 匹配 HTML 標籤正規表示式HTML
- EL表示式 與JSTL標籤JS
- HTML <a> 標籤的正規表示式HTML
- 【Struts2】:Struts2的型別轉換型別
- 匹配HTML標籤的正規表示式HTML
- Struts2教程1:第一個Struts2程式
- Struts2和Oracle資料庫互動的小DemoOracle資料庫
- STRUTS2獲得session和requestSession
- springMVC和Struts2的區別SpringMVC
- struts2驗證+攔截器+國際化+下載excle文件+struts2二級聯動+OGNL表達試+ssh整合\部分程式碼, 專案下載、
- 正值表示式匹配html標籤的屬性值HTML
- Struts2 resultType(十五)
- Struts2 FilterDispatcher StrutsPrepareAndExecuteFilterFilter
- Struts2工程搭建
- struts2入門
- Struts2核心元件元件
- Struts2的框架框架
- Struts2工作原理
- struts2 使用Maven搭建Struts2框架的開發環境Maven框架開發環境
- 【Struts2複習知識點一】-配置struts2環境
- [求助] STRUTS2和SPRING整合問題Spring
- struts2總結(三)--官網下載struts2的jar包JAR
- Struts2 基礎(四)