注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

struts2标签与jstl标签的使用对比\混合使用  

2012-12-20 08:39:29|  分类: struts |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

JSTL与Struts2标签的使用对比

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>


1.以前一直使用jstl标签,后来也开始使用struts2的一些标签,毕竟struts2的有些标签使用起来还是比较方便 
项目中常常会出现struts2标签和jstl标签混和用的情况,比如在自定义标签或者在循环标签等 
1.在jstl中使用struts2 
Java代码 
  1. <c:forEach var="ee" items="${requestScope.serviceList}" >  
  2.      jstl:<c:out value="${ee.id}"></c:out>  
  3.      el:${ee.id}  
  4.      struts2: <s:property value="#attr.ee.id"/>  
  5. </c:forEach>  

通过struts2标签取jstl标签的变量时,如果有设置scope,可以从scope中取值 
如果没有就需要用#attr来取值 
2.从jstl标签中获取值 
Java代码 
  1. <c:set var="ctime" value="${el.createtime}" scope="request"/>  
  2. <c:set var="ctime2" value="${el.createtime}" />  
  3. <s:property value="#request.ctime"/>  
  4. <s:property value="#attr.ctime2"/>  

3.在struts2标签中使用jstl 
Java代码 
  1. <s:iterator value="#request.serviceList" id="bs">  
  2.     struts2:<s:property value="#bs.keyid"/>  
  3.     el:${bs.keyid}  
  4.     jstl:<c:out value="${bs.keyid}"></c:out>  
  5. </s:iterator>  

4.从struts2标签中取值 
Java代码 
  1. <!-- 数字类型 -->  
  2. <s:set name="pp" value="11"></s:set>      
  3. struts2:<s:property value="#pp"/>  
  4. el:${pp}  
  5. jstl:<c:out value="${pp}"></c:out>    
  6. <!-- 字符串类型 -->  
  7. <s:set name="pp2" value="'abc'" scope="request"></s:set>  
  8. struts2:<s:property value="#request.pp2"/>  
  9. el:${pp2}  
  10. jstl:<c:out value="${pp2}"></c:out>   
  评论这张
 
阅读(977)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016