JSTL(c標籤)與Struts2(s標籤)標籤的常用功能對比

1. 條件標籤 JSTL

<c:if test="${user.password == 'hello'}">     
<c:choose>         
<c:when test="${user.age <= 18}">             
<font color="blue"/>         
</c:when>         
<c:when test="${user.age <= 30 && user.age > 18}">             
<font color="red"/>         
</c:when>         
<c:otherwise>            
<font color="green"/>         
</c:otherwise>     
</c:choose>
</c:if>

STRUTS2:

<s:if test="#user.age <= 18">      
<font color="blue"/>
</s:if>
<s:elseif test="#user.age <= 30 && user.age > 18">      
<font color="red"/>
</s:elseif>      
<font color="green"/>
</s:else>

2. 迭代標籤
JSTL:  

<c:forEach var="user" items="${users}">      
<c:out value="${user.userName}"/>
</c:forEach><!-- 迭代固定次數 -->
<c:forEach var="i" begin="1" end="10" step="3">    
<c:out value="${i}"/>
</c:forEach><!-- 這種循環相當於for(int i=1; i<10; i++), 其中step是指迭代的步長,默認爲1. -->

struts2:

<s:iterator value="#users" status="stuts">     
<s:if test="#stuts.odd == true">   <!-- 判斷是否爲奇數行 -->          
<s:property value="userName"/>      
</s:if>      
<s:else>          
<s:property value="passWord"/>
</s:else>
</s:iterator>

3. URL相關標籤    JSTL:

<!-- 絕對路徑 -->
<c:import url="http://127.0.0.1:8080/hello/hello.jsp"/><!-- 相對路徑 -->
<c:import url="hello.jsp"/><!-- Encode -->

<a href="
<c:url value='hello.jsp'><c:param name='userName' value='cyanbomb' /></c:url>">
</a><!-- 傳遞參數到指定的URL -->

<c:import url="hello.jsp" charEncoding="gb2312">      
<c:param name="userName" value="cyanbomb"/></c:import><!-- URL重定向 -->

<c:redirect url="${myurl}"/><!-- 構造URL -->

<c:url value="myurl" var="hello.jsp" scope="session">
<c:param name="userName" value="cyanbomb"/></c:url>

Struts2:

<a href='<s:url value="/hello.jsp" />'>Hello</a><br/>
<s:url id="url" value="/hello.jsp">
<s:param name="name">cyanbomb</s:param></s:url>

<s:a href="%{url}">Hello</s:a>

解除的疑問,list遍歷問題

像這樣一個list,裏面有3條記錄,每條記錄包含兩個對象,我把結果集(lstRooms)request到了頁面,想遍歷顯示RrmRooms裏的id,和RrmRoomType裏的name. 我用JSTL實現如下:

<table>      
<c:forEach var="rm" items="${lstRooms}">          
<tr>              
<td>${rm[0].id}</td>              
<td>${rm[1].name}</td>          
<tr>      
</c:forEach></table>

STRUTS2實現如下:

<table>      
<s:iterator value="#lstRooms" status="stat">          
<tr>              
<td>
<s:property value="#lstRooms[#stat.index][0].id"/>
</td>              
<td>
<s:property value="#lstRooms[#stat.index][1].name"/>
</td>         
<tr>      
</s:iterator>
</table>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章