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...
1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...
其次,`<c:if>`是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于在JSP页面中实现条件判断。JSTL是一套标准的标签库,旨在减少在JSP页面中使用脚本let和表达式语言,使页面更加清晰和可维护。`<c:if>`...
在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...
在Java Web开发中,`<c:if>`标签是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于实现条件判断。JSTL是Java EE生态中的一个标准库,提供了许多预定义的标签来简化JSP页面的编写,提高代码的可读性...
在JSP(JavaServer Pages)开发中,`<c:forEach>` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相较于传统的JSP Scriptlets,使用...
其中,`<c:if>`标签是用于实现条件分支的关键组件之一,类似于编程语言中的if语句。 #### `<c:if>`标签的基本语法及使用场景 `<c:if>`标签主要用来根据表达式的真假来决定是否执行其内部的内容。它有两种基本的...
在这个主题"**c标签-if-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`<c:if>`和`<c:forEach>`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**<c:if>**...
用于循环的 <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....
本文将详细介绍JSTL中的核心标签:<c:if>、<c:choose>、<c:forEach>、<c:forTokens>、<c:catch>、<c:remove>、<c:set>、<c:import>、<c:redirect>、<c:url>以及与之相关的<fmt>标签库。 #### 1. <c:if> <c:if>标签...
- **<c:if>** 和 **<c:choose>**:实现条件判断,`<c:if>`用于简单的条件测试,`<c:choose>`配合`<c:when>`和`<c:otherwise>`实现多分支选择。 - **<c:forEach>** 和 **<c:forTokens>**:进行循环操作,`<c:...
本文将深入探讨JSTL的核心标签库(core tag library),主要包括`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`以及`<c:forEach>`等标签的使用。 1. `<c:set>`标签: `<c:set>`用于设置变量的值,...
2. **模块化**:使用Tiles框架,通过Struts的`<tiles:insert>`标签实现页面的模块化和复用。 3. **错误处理**:利用Struts的`<html:errors>`标签显示全局错误信息,确保用户体验良好。 4. **性能优化**:合理使用...
- `<c:choose>`, `<c:when>`, `<c:otherwise>`:这些标签组合起来用于实现多条件判断,类似于Java中的switch-case语句。 - `<c:set>`:设置变量,可以将值存储到page、request、session或application作用域中。 - `...
本文件主要涉及了JSTL中的一些核心标签,如`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`和`<c:forEach>`等,并展示了它们在实际应用中的用法。 1. **条件判断标签**: - `<c:if>`:用于进行条件判断,`...
主要包括`<c:out>`、`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`、`<c:forEach>`、`<c:forTokens>`、`<c:import>`、`<c:url>`和`<c:redirect>`等标签。这些标签...
Core库是JSTL中最基本的库,它包含了许多与HTML元素相似的功能标签,如`<c:out>`、`<c:set>`、`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`、`<c:forEach>`等。 - `<c:out>`:用于安全地输出数据,防止...
`<c:param>` 通常与`<c:url>`或`<jsp:include>`一起使用,添加URL查询参数。如: ``` <c:param name="id" value="${productId}"/> ``` 以上就是JSTL中常用的一些标签及其用法,它们极大地简化了JSP页面的编程,...