JSTL与Struts2标签的使用对比

17 篇文章 0 订阅
1. 条件标签
    JSTL: 
 1  < c:if  test ="${user.password == 'hello'}" >
 2       < c:choose >
 3           < c:when  test ="${user.age <= 18}" >
 4              < font  color ="blue"   />
 5          </ c:when >
 6          < c:when  test ="${user.age <= 30 && user.age > 18}" >
 7              < font  color ="red"   />
 8          </ c:when >
 9           < c:otherwise >
10              < font  color ="green"   />
11          </ c:otherwise >
12       </ c:choose >
13  </ c:if >
    Struts2:
1  < s:if  test ="# user.age < = 18" >
2      < font  color ="blue"  />
3  </ s:if >
4  < s:elseif  test ="#user.age <= 30 && user.age > 18" >
5      < font  color ="red"  />
6  </ s:elseif >
7      < font  color ="green"  />
8  </ s:else >

2. 迭代标签
    JSTL:
1  < c:forEach  var ="user"  items ="${users}" >
2       < c:out  value ="${user.userName}"   />
3  </ c:forEach >
4  <!--  迭代固定次数  -->
5  < c:forEach  var ="i"  begin ="1"  end ="10"  step ="3" >
6       < c:out  value ="${i}"   />
7  </ c:forEach >
8  <!--  这种循环相当于for(int i=1; i<10; i++), 其中step是指迭代的步长,默认为1. -->
    Struts2:
1  < s:iterator  value ="#users"  status ="stuts" >                 
2     < s:if  test ="#stuts.odd == true" >   <!-- 判断是否为奇数行 -->
3          < s:property value="userName" />
4      </ s:if >
5      < s:else >
6          < s:property value="passWord"  />
7      </ s:else >
8 </ s:iterator >

3. URL相关标签
    JSTL:
 1  <!--  绝对路径  -->
 2  < c:import  url ="http://127.0.0.1:8080/hello/hello.jsp"   />
 3  <!--  相对路径  -->
  4  < c:import  url ="hello.jsp"   />
 5  <!--  Encode  -->
 6  < href ="<c:url value='hello.jsp'><c:param name='userName' value='cyanbomb' /></c:url>" ></ a >
 7  <!--  传递参数到指定的URL  -->
 8  < c:import  url ="hello.jsp"  charEncoding ="gb2312"   >
 9       < c:param  name ="userName"  value ="cyanbomb"   />
10  </ c:import >
11 <!--  URL重定向  -->
12 < c:redirect  url ="${myurl}"  />
13 <!--  构造URL  -->
14 < c:url  value ="myurl"  var ="hello.jsp"  scope ="session" >
15     < c:param  name ="userName"  value ="cyanbomb"  />
16 </ c:url >
    Struts2:
1  < href ='<s:url  value ="/hello.jsp"   /> ' > Hello </ a >< br  />
2 < s:url  id ="url"  value ="/hello.jsp" >
3     < s:param  name ="name" > cyanbomb </ s:param >
4 </ s:url >         
5 < s:a  href ="%{url}" > Hello </ s:a >

解除的疑问,list遍历问题

像这样一个list,里面有3条记录,每条记录包含两个对象,我把结果集(lstRooms)request到了页面,想遍历显示RrmRooms里的id,和RrmRoomType里的name.
我用JSTL实现如下:
1  < table >
2       < c:forEach  var ="rm"  items ="${lstRooms}" >
3           < tr >
4               < td > ${rm[0].id} </ td >
5               < td > ${rm[1].name} </ td >
6           < tr >
7       </ c:forEach >
8  </ table >
STRUTS2实现如下:
1 < table >
2       < s:iterator  value ="#lstRooms"  status ="stat" >
3           < tr >
4               < td >< s:property  value ="#lstRooms[#stat.index][0].id"   /></ td >
5               < td >< s:property  value ="#lstRooms[#stat.index][1].name"   /></ td >
6           < tr >
7       </ s:iterator >
8 </ table >

待更新...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stl的配置方法:<br>1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)<br><br>2、在jsp页面头部引入taglib方法如下:<br> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core " %><br> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt " %> <br> <%@ taglib prefix="my" uri="http://www.bjsxt.com/functions " %><br> <br> 注意:JSTL必须在能够支持J2ee1.4/servlet2.4/jsp2.0版本以上的容器才能运行,这个环境配置<br> 是目前最常用的版本<br> <br>3、JSTL重点<br> * EL表达式的用法 <br> * c:out标签<br> * c:if/c:choose/c:when/c:otherwise标签<br> * c:forEach标签<br> * fmt:formatDate标签<br> * fmt:formatNumber标签<br> * 函数库的使用<br> * 自定义函数库<br> * 定义类和方法(必须定义为public static)<br> * 编写tld文件,并且将tld文件放到WEB-INF下<br> * 在jsp中使用taglib指令引入自定义标签库<br> * 直接使用即可<br><br> <br><br> <br><br><h1>测试JSTL核心标签库</h1><br> <hr><br> <li>测试c:out</li><br><br> a(default)=<c:out value="${a}"/><br><br> a(el)=${a }<br><br> b(defalt)=<c:out value="${b}" default="b value"/><br><br> bj(default)=<c:out value="${bj}"/><br><br> bj(escapeXml=true)=<c:out value="${bj}" escapeXml="true"/><br><br> bj(escapeXml=false)=<c:out value="${bj}" escapeXml="false"/><br><br> <p><br> <li>条件控制标签c:if</li><br><br> <c:if test="${v1 lt v2}" var="v"><br> boolean value=${v } &nbsp&nbsp v1 小于 v2<br> </c:if><br> <c:if test="${v1 gt v2}" var="v"><br> boolean value=${v } &nbsp&nbsp v1 大于 v2<br> </c:if><br> <li>条件控制标签c:choose,c:when,c:otherwise</li><br><br> <c:choose><br> <c:when test="${v1 gt v2}"><br> v1 大于 v2<br> </c:when><br> <c:otherwise><br> v1 小于 v2<br> </c:otherwise><br> </c:choose><br> <br><br> <c:choose><br> <c:when test="${empty valuelist}"><br> valuelist为空<br> </c:when><br> <c:otherwise><br> valuelist不为空<br> </c:otherwise><br> </c:choose><br> <p><br> <li>循环控制标签:c:foreach</li><br><br> <table border="1"><br> <tr><br> <td>姓名</td><br> <td>年龄</td><br> <td>所属组</td><br> </tr><br> <c:forEach var="user" items="${userlist}"><br> <tr><br> <td><c:out value="${user.username}"/></td><br> <td><c:out value="${user.age}"/></td><br> <td><c:out value="${user.relatedGroup.name}"/></td><br> </tr><br> </c:forEach><br> </table><br> <p><br> <li>循环控制标签:c:foreach varstatus的用法</li><br><br> <table border="1"><br> <tr><br> <td>姓名</td><br> <td>年龄</td><br> <td>所属组</td><br> </tr><br> <c:forEach var="user" items="${userlist}" varStatus="vs"><br> <c:choose><br> <c:when test="${ vs.count % 2 == 0}"><br> <tr bgcolor="red"><br> </c:when><br> <c:otherwise><br> <tr><br> </c:otherwise><br> </c:choose><br> <td><c:out value="${user.username}"/></td><br> <td><c:out value="${user.age}"/></td><br> <td><c:out value="${user.relatedGroup.name}"/></td><br> </tr><br> </c:forEach><br> </table><br> <p><br> <li>循环控制标签:c:foreach</li><br><br> <table border="1"><br> <tr><br> <td>姓名</td><br> <td>年龄</td><br> <td>所属组</td><br> </tr><br> <c:forEach var="user" items="${userlist}" begin="2" end="8" step="2"><br> <tr><br> <td><c:out value="${user.username}"/></td><br> <td><c:out value="${user.age}"/></td><br> <td><c:out value="${user.relatedGroup.name}"/></td><br> </tr><br> </c:forEach><br> </table><br> <p><br> <li>循环控制标签:c:fortoken</li><br><br> <c:forTokens items="${tokenstr}" delims="," var="v"><br> <c:out value="${v}"/><br> </c:forTokens> <br> <p><br> <li>循环控制标签:c:foreach-map</li><br><br> <c:forEach items="${map}" var="v"><br> ${v}<br><br> ${v.key}=${v.value }<br><br> </c:forEach>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值