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 >

猜你喜欢

转载自andyniu.iteye.com/blog/2310898
今日推荐