【JSTL】--JSTL表达式:c:forEach--drp215

JstlCoreServlet:
/** * */ package com.bjpowrnode.jstl; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @ClassName:JstlCoreServlet * @Description:TODO * @author wm * @date 2016年2月15日上午11:40:32 */ public class JstlCoreServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //普通字符串 request.setAttribute("hello","Hello World!"); request.setAttribute("welcome", "<font color='red'>欢迎你来到这个世界!</font>"); //条件控制标签、 request.setAttribute("v1", 10); request.setAttribute("v2", 20); request.setAttribute("userList", new ArrayList()); //结构 Group group =new Group(); group.setName("动力节点drp 603班"); List users=new ArrayList(); for(int i =0;i<10;i++){ User user=new User(); user.setUsername("张三_"+i ); user.setAge(23+i); user.setGroup( group); users.add(user); } request.setAttribute("users", users); request.getRequestDispatcher("/jstl_core.jsp").forward(request, response); } }
jstl_core.jsp:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="com.bjpowrnode.jstl.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<h1>测试JSTL核心库</h1>
<hr>
<li>采用c:out标签</li><br>
hello(使用标签:)<c:out value="123"/><br>
hello(使用标签:)<c:out value="hello"/><br>
hello(使用标签:)<c:out value="${hello}"/><br>
hello(使用标签:EL表达式)${hello}<br>
hello(default):${hello123 }<br>
hello(使用缺省值):<c:out value="${hello123 }" default="没有值"/><br>
hello(使用缺省值):<c:out value="${hello123 }" >没有值</c:out><br>
Welcome(使用EL表达式):${welcome}<br>
welcome(使用标签,escapeXml=true):<c:out value="${welcome }" escapeXml="true"/><br>
welcome(使用标签,escapeXml=false):<c:out value="${welcome }" escapeXml="false"/><br>
<p>
<li>测试 c:set ,c:remove</li><br>
<c:set value="root" var="userid"/>
userid:${userid}<br>
<c:remove var="userid"/>
userid:${userid }<br>
<p>
<li>条件控制标签c:if</li><br>
<c:if test="${v1 lt v2 }">
v1小于v2
</c:if>
<p>
<li>条件控制标签:c:choose,c:when,c:otherwise</li><br>
<c:choose>
<c:when test="${v1 gt v2 }">
v1大于v2<br>
</c:when>
<c:otherwise>
v1小于v2<br>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${empty userList }">
没有符合条件的数据<br>
</c:when>
<c:otherwise>
存在用户数据<br>
</c:otherwise>
</c:choose>
<p>
<li>演示循环控制标签:forEach</li><br>
<h3>采用jsp脚本显示</h3>
<table border="1">
<tr>
<td>用户名称</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<%
List userList=(List)request.getAttribute("users");
if(userList==null || userList.size()==0){
%>
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
<%
}else{
for(Iterator iter=userList.iterator();iter.hasNext();){
User user=(User)iter.next();
%>
<tr>
<td><%=user.getUsername() %></td>
<td><%=user.getAge()%></td>
<td><%=user.getGroup().getName() %></td>
</tr>
<%
}
}
%>
</table>
<h3>采用forEach标签</h3>
<table border="1">
<tr>
<td>用户名称</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty users }">
<tr>
<td colspan="3" >没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.username}</td>
<td>${user.age }</td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
</body>
</html>
c:forEach相对于jsp,代码更加简洁,可读性更好,后期维护的代价小。

浙公网安备 33010602011771号