JSTL与Struts2标签的使用对比

1. 条件标签
    JSTL: 

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->  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:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 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:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 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:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 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:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->  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:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 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遍历问题
JSTL与Struts2标签的使用对比
像这样一个list,里面有3条记录,每条记录包含两个对象,我把结果集(lstRooms)request到了页面,想遍历显示RrmRooms里的id,和RrmRoomType里的name.
我用JSTL实现如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 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 >


待更新...

你可能感兴趣的:(struts2标签)