Jsp页面中的循环迭代,以前用jstl中的<c:foreach>实现的,可今天为了达到团队页面风格的一致而用Struts标签实现,由于以前本人不怎么常用struts的<s:iterator>标签,加上迭代体中还用到了EL表达式,尤其是<s:if>条件的书写jstl中截然不同,结果在这个小小的循环跌停的替换上犯了不少错,折腾了很久,因此记录下来,希望对今后能有所帮助。
jstl实现:
<c:forEach items="${deptsList }" var="per" varStatus="varStatus">
<tr>
<td align="center">${varStatus.count }</td>
<td style="display:none" align="center" id="deptId_${per.id }">${per.id }</td>
<td > <a href="#" class="handLink" onclick="showDiv('${per.id }','${per.name }');"><span>${per.name }</span></a></td>
<td>${per.creator }</td>
<td><fmt:formatDate value="${per.creationTime }" type="both" /></td>
<td>
<c:choose>
<c:when test="${per.latestUpdater!=null }">${per.latestUpdater }</c:when>
<c:otherwise>NO Modification</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${per.latestUpdateTime!=null }"><fmt:formatDate value="${per.latestUpdateTime }" type="both" /></c:when>
<c:otherwise>NO Modification</c:otherwise>
</c:choose>
</td>
<td align="center">
<a href="#toUpdateDiv" id="skipToUpdateDiv"><input type="button" class="btn span-2" value="Update" onclick="showDiv('${per.id }','${per.name }');" /></a>
<input type="button" class="btn span-2" value="Delete" onclick="deleteDept(${per.id})"/>
</td>
</tr>
</c:forEach>
Struts2实现:
<s:iterator value="deptsList" id="per" status="status">
<tr>
<td align="center">${status.count }</td>
<td style="display:none" align="center" id="deptId_${per.id }">${per.id }</td>
<td > <a href="#" class="handLink" onclick="showDiv('${per.id }','${per.name }');"><span>${per.name }</span></a></td>
<td>${per.creator }</td>
<td><s:date name="#per.creationTime" /></td>
<td>
<s:if test="%{#per.latestUpdater!=null }">${per.latestUpdater }</s:if>
<s:else>NO Modification</s:else>
</td>
<td>
<s:if test="%{#per.latestUpdateTime!=null }"><s:date name="#per.latestUpdateTime"/></s:if>
<s:else>NO Modification</s:else>
</td>
<td align="center">
<a href="#toUpdateDiv" id="skipToUpdateDiv"><input type="button" class="btn span-2" value="Update" onclick="showDiv('${per.id }','${per.name }');" /></a>
<input type="button" class="btn span-2" value="Delete" onclick="deleteDept(${per.id})"/>
</td>
</tr>
</s:iterator>
注:${status.count }等价于<s:property value="#status.count"/>,这小小的标识符一点用错就能折腾好久,以及<s:if>标签test条件的%、#等。
jstl使用问题:
1. jar包:jstl.jar 和 standard.jar。
2. 日期时间fomat:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatDate value="${per.latestUpdateTime }" type="both" />
分享到:
相关推荐
<c:forEach> 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c:forEach>的本体内容。 语法 语法1:迭代一集合对象之所有成员 <c:forEach [var="varName...
◎ JSTL的基本概念、安装与配置...◎ JSTL的通用标记:<c:out>、<c:set>、<c:remove>和<c:catch>标记 ◎ 条件处理标记:<c:if>、<c:choose>、<c:when>和<c:otherwise>标记 ◎ 循环标记:<c:forEach>和<c:forTokens>标记
<c:if> <c:if>的用途就和我们一般在程序中用的if一样。 语法 语法1:没有本体内容(body) <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/> 语法2:有本体内容 ...
用于循环的 <c:forEach>?标签 用于分隔字符的 <c:forTokens>?标签? 用于包含页面的 <c:import> 用于得到 URL?地址的 <c:url>?标签? 用于页面重定向的 <c:redirect>?标签? 用于包含传递参数的?<c:param> 标签?.
(2)自已完成使用JSTL的<c:forEach>标签取代Productjsp中的for循环语句。 4.参考教材完成ShowCategoryServlet并相应修改Category.jsp. 5.自己完成ShowProductServlet, ShowItemServlet并相应修改Product.jsp和Item....
inf/lib下即可(如只使用EL表达式,无需引用这两个包)<br><br>2、在jsp页面头部引入taglib方法如下:<br> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core " %><br> <%@ taglib prefix="fmt" uri=...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>标签 16.4.6、<html:hidden...
爱好:<c:forEach items="${paramValues.Habit}" var="habit"> ${habit} </c:forEach> 如果字符串是由逗号分隔的一组值,forEach也支持将其分割 <c:forEach items="Monday,Tuesday,Wednesday" var="week"> ${...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>标签 16.4.6、<html:hidden...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<...
16.3.5、重定向标签:<logic:redirect> 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>...
JSTL标签总结-<c:if>,<c:choose>,<c:forEach>,<c:forTokens>,<c:catch>,<c:remove >,<c:set>,<c:import>,<c:redirect>,<c:url>,<fmt>
1.关键字:JSTL标签、<c:choose>、<c:forEach>、<c:forTokens>、<c:if>、<c:import>、<c:otherwise>、<c:out>、<c:param>、<c:redirect>、<c:remove>、<c:url>、<c:when>、<c:set>、<c:catch>
jstl标签可以代替<%= %>在jsp文件中书写java代码,jstl标签包括<c:forEach><c:forEach>、<c:if></c:if>以及<c:choose></c:choose>等的使用,可以使java代码在jsp页面中更加规整。 使用jstl标签需要两个jar包
<c:forEach items="${requestScope.students}" var="student" varStatus="num"> <tr> <td>${num.count}</td> <td>${student.sname}</td> <td><c:out value="${student.spass}" default=...
这是一个jsp+javaBean+servlet分页 主要功能 是通过 jstl标签中的 <c:forEach 中的开始 begin和末尾end、list结果集的items属性 操作整个分页。大家有兴趣看看