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

时间: 2024-10-02 11:36:16

【JSTL】--JSTL表达式:c:forEach--drp215的相关文章

jstl表达式的foreach标签只执行循环不显示取出的值

jstl的foreach标签使用方法网上一大堆,在此不必赘述,本次主要mark的是为啥按照正常的写法不显示值,${value}放那啥样显示出来的就啥样 标题效果描述如下 : jsp中: <c:forEach begin="1" var="a" end="5" step="1"> ${a} <br></c:forEach> 显示效果: ${a} ${a} ${a} ${a} ${a} jstl

JSTL标签之c:foreach,c:if标签小结

<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1 var 代表当前项目的变量名 否 无 varStatus 显示循环状态的变量 否 无 begin和end属性 可以指定开始循环位置和结束循环位置.例如 从集合第二个元素开始迭代: <c:forEach items="${userInfo.roleTypeE

JSTL自定义标签 实现forEach循环支持集合.数组

java代码实现 tld配置 JSP页面代码

使用jstl el表达式对form表单的功能进行区分 比如新建和修改共用一个form

新建一个专栏,修改这个专栏信息 完全可以做在一个jsp的一个form中 但是,需要注意的是,使用mvc的对象属性自动封装的话 如果id为空,将会报错,无法进入controller中的 所以要在页面上判断,id是不是大于0,大于0表示已经传来了一个model这时候把id设为隐藏域 并且执行修改操作 <c:choose> <c:when test="${columnModel.id>= '0'}"> id存在,将执行update操作 <input typ

JSP标准标签库(JSTL)--JSTL简介与安装

对于MVC设计模式来讲,我们一直强调,在一个JSP钟scriptlet代码越少越好,但是只靠以前的概念很难实现,因为标签的开发特别麻烦,所以为了简化标签,也为了让标签更具备一些通用性,所以一般在开发中(不使用框架前提下),可以使用JSTL组件完成开发的任务. JSTL:JSP Standard Tag Library,JSP标准标签库. 开发环境:JDK1.6, Tomcat6.0,来说,JSTL的稳定版本是1.2 下载下来jstl-1.2.jar,里面主要有以下标签库分类: 1. c.tld:

7.4{JSTL}(JSTL简介)(基本配置步骤)

1: url:http://java.sun.com/jsp/jstl/core 2:JSTL的配置步骤 下载的 url:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip 步骤: 最后:在jsp文件中 原文地址:https://www.cnblogs.com/jiafeng1996/p/12327485.html

JSP常用标签——JSTL标签和EL表达式

一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率) 书写JSP页面时可读性更强(长得很像xml,方便前端查看和参与开发) 用事实告诉你为什么使用JSTL: 实现: 但是,使用JSTL效果如下: 3.JSTL环境搭建 JSTL的下载: 下载地址:http://archive.apache.org/dist/jakar

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

JSP标签语法、JSTL标签库、EL表达式辨析

<一.JSP > JSP 语法语法格式: <% 代码片段 %>或者<jsp:scriptlet> 代码片段</jsp:scriptlet> JSP声明 <%! declaration; [ declaration; ]+ ... %><%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %> 或者<jsp:declara

EL表达式 与 JSTL标准标签库

目录 EL表达式 什么是EL表达式 作用 EL内置11对象 EL执行表达式 JSTL 什么是JSTL JSTL标准标签库有5个子库 把JSTL标签库jar包引入工程当中 if标签 foreach标签 JavaEE开发模式 什么是开发模式 JavaEE模式 EL表达式 什么是EL表达式 EL(Express Lanuage)表达式可以嵌入在jsp页面内部 减少jsp脚本的编写 EL出现的目的是要替代jsp页面中脚本的编写. 作用 ? EL最主要的作用是获得四大域中的数据 ? 从四大域当中取数据 p