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 >
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM