1.JSTL(c标签)与Struts2(s标签)标签的常用功能对比
1.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>
1.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>
2.<c:foreach>标签
2.1.循环遍历输出所有元素
<c:foreach items="${list}" var="li">
${li}
</c:foreach>
注意:items 用于接收集合对象,var 定义对象接收从集合里遍历出的每一个元素。同时其会自动转型。
2.2.循环遍历,输出一个范围类的元素。
<c:foreach items ="${lis}" var = "li " begin="2" end ="12">
${li}
</c:foreach>
注意:begin 定义遍历的开始位置,end定义遍历的结束位置。begin 和end的引号必须写。
2.3.循环遍历,输出除某个元素以外的元素或输出指定元素。
<c:foreach items="${list}" var ="li" varStatus="status">
<c:if text="${status.count==1}>
${"第一个元素不要"}
</c:if>
${li}
</ c:foreach>
注意:varStatus 表示当前集合的状态(其实是不是,我也不太清楚,只知道这样用,会的人指点下),count为循环一个计算器。
2.4.循环遍历,输出第一个或最后一个元素。
<c:foreach items="${list}" var ="li" varStatus="status">
<c:if test="${status.first}">我是第一个元素</c:if>
<c:if test="${status.last}">我是最后一个元素</c:if>
</c:foreach>
注意:first表示如果是一个元素,则返回ture,反之则返回false
last 表示如果是最后一个元素,则返回ture,反之则返回false。
2.5.循环遍历,按指定步长输出。
<c:foreach items="list" var ="li" step="2">
${li}
</c:foreach>
注意:step为循环的步长。每次隔两个单位输出一个。如:1、3、5、==
3.Struts2标签s:checkboxlist的用法
<label class="control-label" for="">权限项</label>
<div class="controls">
<label class="checkbox inline">
<s:checkboxlist list="permissionPageList" listKey="nameKey" listValue="nameKey" value="selected" name="newPermissions"/>
</label>
</div>
list="permissionPageList"是action中的list,里面放置的是权限对象permissions,
listKey="nameKey" 这里的nameKey对应后台permissionPageList集合中permissions这个对象的的属性nameKey,listKey的值也是将要传入后台的值,传入后台后这个只放置newPermissions集合中;
listValue="nameKey" 是显示在页面上的内容;
name="newPermissions" 这是将勾选的选项的listKey="nameKey"传入后台;
value="selected" 这是回显的,就是默认的打钩的选项,selected是action中定义的List集合,用来存放listValue="nameKey"中的nameKey的值,把想要默认打钩的listValue="nameKey"的nameKey在action中加入selected集合即可
来源:oschina
链接:https://my.oschina.net/u/1452855/blog/541971