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遍历问题

JSTL(c标签)与Struts2(s标签)标签的常用功能对比详解编程语言

像这样一个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>

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13342.html

(0)
itxm 2018年07月11日 编程语言 564 0 编程语言
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论