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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值