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 >
复制代码
复制代码

混合使用:

struts2标签与jstl标签的混合使用

  • 一些标签,毕竟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>    

struts2 标签库:http://www.cnblogs.com/taoweiji/p/3259783.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值