• 【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,代码更加简洁,可读性更好,后期维护的代价小。

  • 相关阅读:
    各种HTTP错误消息含义
    fastjson生成和解析json数据
    javascript性能优化
    js正则表达式test方法、exec方法与字符串search方法区别
    JavaScript中字符串的match与replace方法
    js 字符串indexof与search方法的区别
    JavaScript indexof方法
    JavaScript数组方法说明
    setTimeout模拟setInterval调用
    javascript forEach方法与jQuery each区别
  • 原文地址:https://www.cnblogs.com/wangmei/p/5190847.html
Copyright © 2020-2023  润新知