使用struts2标签结合OGNL表达式在页面循环输出集合中的内容
在开发中,将查询数据库返回的集合存储到域中,再由页面取出集合显示,这是非常常见的。
这里就介绍一下如何使用struts2标签结合OGNL表达式在页面循环输出集合中的内容。就相当于jstl中的<c:forEach></c:forEach>标签。
- 带 var 属性的<s:iterator></s:iterator>标签:有var 将集合中的每一项放到var中再放到ActionContext中,取ActionContext中取数据格式为:#customer.cust_name,customer为 var 属性,cust_name为集合中对象的属性。使用<s:property value="#customer.cust_level"/>取出。
要引入标签库:<%@ taglib uri="/struts-tags" prefix=“s” %>
<!-- struts2 OGNL表达式取值 有var 将集合中的每一项放到var中再放到ActionContext中-->
<s:iterator value="#customerList" var="customer">
<TR
style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
<TD>
<s:property value="#customer.cust_name"/>
</TD>
<TD>
<s:property value="#customer.cust_level"/>
</TD>
<TD>
<s:property value="#customer.cust_level"/>
</TD>
<TD>
<s:property value="#customer.cust_level"/>
</TD>
<TD>
<s:property value="#customer.cust_level"/>
</TD>
<TD>
<s:property value="#customer.cust_level"/>
</TD>
<TD>
<a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a>
<a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a>
</TD>
</TR>
</s:iterator>
- 不带var 属性的<s:iterator></s:iterator>标签:直接使用<s:property value=“cust_name”/>取出集合中对象的属性。
要引入标签库:<%@ taglib uri="/struts-tags" prefix=“s” %>
<!-- struts2 OGNL表达式取值 没有var-->
<%-- <s:iterator value="#customerList">
<TR
style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
<TD>
<s:property value="cust_name"/>
</TD>
<TD>
<s:property value="cust_level"/>
</TD>
<TD>
<s:property value="cust_level"/>
</TD>
<TD>
<s:property value="cust_level"/>
</TD>
<TD>
<s:property value="cust_level"/>
</TD>
<TD>
<s:property value="cust_level"/>
</TD>
<TD>
<a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a>
<a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a>
</TD>
</TR>
</s:iterator> --%>
- 使用 jstl的<c:forEach></c:forEach>标签在页面循环输出集合中的内容:
要引入标签库:<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<c:forEach items="${customerList }" var="customer">
<TR
style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
<TD>${customer.cust_name }</TD>
<TD>${customer.cust_level }</TD>
<TD>${customer.cust_source }</TD>
<TD>${customer.cust_linkman }</TD>
<TD>${customer.cust_phone }</TD>
<TD>${customer.cust_mobile }</TD>
<TD>
<a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a>
<a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a>
</TD>
</TR>
</c:forEach>