<c:out>标签用于输出一段文本内容到pageContext对象当前保存的“out”引用中。
| 属性名 | 是否支持EL | 属性类型 | 属性描述 | 
| value | true | Object | 指定要输出的内容 | 
| escapeXml | true | Bollean | 定是否将> < & ‘ "等特殊字符进行HTML编码转换后再进行输出。默认值为true | 
| default | true | Object | 如果value属性值为null,输出default所指定的默认值 | 
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>c:out标签</title> </head> <body> <strong><c:out value="c:out标签:" /></strong><br> <c:out value="${aa}" default="value is null, output default string"/><br> <c:out value="<a href=‘http://www.cnblogs.com/‘>博客园</a>" /><br> <c:out value="<a href=‘http://www.cnblogs.com/‘>博客园</a>" escapeXml="false"/><br> </body> </html>
转换后的HTML源码:
<html> <head> <title>c:out标签</title> </head> <body> <strong>c:out标签:</strong><br> value is null, output default string<br> <a href='http://www.cnblogs.com/'>博客园</a><br> <a href=‘http://www.cnblogs.com/‘>博客园</a><br> </body> </html>
运行结果:

<c:set>标签用于把某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map类型的属性对象或JavaBean对象的属性。
| 属性名 | 是否支持EL | 属性类型 | 属性描述 | 
| value | true | Object | 用于指定属性值 | 
| var | false | String | 用于指定要设置的属性的名称 | 
| scope | false | String | 用于指定属性所在的web域 | 
| target | true | Object | 用于指定要设置属性的对象,这个对象必须是JavaBean对象或java.util.Map对象 | 
| property | true | String | 用于指定当前要为对象设置属性的名称 | 
举例:
package bean; public class User { private String username; private String password; public User() { } public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
<%@ page import="bean.User" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>c:set标签</title> </head> <body> <strong>c:set标签:</strong><br> <!-- 设置普通的属性 --> <c:set var="data" value="aaaa" scope="request" ></c:set> ${data} <br> <!-- 设置JavaBean的属性 --> <% User user = new User(); session.setAttribute("user", user); %> <c:set target="${user}" property="username" value="zhangsan" /> <c:set target="${user}" property="password" value="123456" /> username=${user.username}, password=${user.password}<br> <!-- 设置Map的值 --> <% Map<String, String> map = new HashMap<>(); request.setAttribute("map", map); %> <c:set target="${map}" property="aaa" value="111" /> ${map.aaa} </body> </html>
运行结果:

<c:remove>标签用于删除各种web域的属性。语法:
<c:remove var="varName" scope="page|request|session|application" />
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>c:remove标签</title> </head> <body> <strong>c:remove标签:" </strong><br> <c:set var="data1" value="aaaa" scope="request"/> 删除属性前: data1=${data1}<br> <c:remove var="data1" scope="application" /> 删除属性后: data1=${data1}<br> </body> </html>
运行结果:

<c:catch>标签用于捕获嵌套在标签中内容抛出的异常,语法:
<c:catch var="varName" > 代码 </c:catch>
var属性用于保存捕获的异常对象,并保存在page域中。
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>c:catch标签</title> </head> <body> <strong>c:catch标签:" </strong><br> <c:catch var="error" > <% int i = 10 / 0; %> </c:catch> 异常:${error} <br> 异常 error.getMessage: ${error.message}<br> 异常 error.getCause: ${error.cause}<br> 异常 error.getStackTrace: ${error.stackTrace}<br> </body> </html>
运行结果:

<c:if test=""/>标签可以构造简单的“if-then”结构的条件表达式。
| 属性名 | 是否支持EL | 属性类型 | 属性描述 | 
| test | true | Boolean | 决定是否处理标签体内容的条件表达式 | 
| var | false | String | 用于指定test属性执行结果保存的属性名称 | 
| scope | false | String | 用于指定test属性执行结果保存在哪个web域 | 
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>c:if标签</title>
  </head>
  <body>
  <strong>c:if标签: </strong><br>
  <jsp:useBean id="user" scope="session" class="bean.User">
    <jsp:setProperty name="user" property="username" value="zhangsan" />
    <jsp:setProperty name="user" property="password" value="123" />
  </jsp:useBean>
  <c:if test="${user!=null}">
    欢迎你:${user.username}
  </c:if>
  <c:if test="${user==null}" >
    请登录
  </c:if>
  </body>
</html>
运行结果:

<c:choose>标签用于指定多个条件选择的组合边界,他必须与<c:when>和<c:otherwise>标签一起使用。使用
<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似"if-else if-else"的复杂条件判断结构。
举例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>c:choose标签</title>
  </head>
  <body>
  <strong>c:choose标签: </strong><br>
  <c:set var="sex" value="female"/>
  <c:choose>
    <c:when test=‘${sex.equals("male")}‘>
      性别:男
    </c:when>
    <c:when test=‘${sex.equals("female")}‘>
      性别:女
    </c:when>
    <c:otherwise>
      性别输入不正确
    </c:otherwise>
  </c:choose>
  </body>
</html>
运行结果:

<c:forEach>标签用于对一个集合对象中的元素进行循环迭代操作,或者按照指定的次数重复迭代执行标签体中的内容。
| 属性名 | 是否支持EL | 属性类型 | 属性描述 | 
| var | false | String | 用于指定当前迭代到的元素的属性名称,保存在page域 | 
| items | true | Object | 将要迭代的对象 | 
| begin | true | int | 如果指定itmes属性,就从结合中的第begin个元素开始进行迭代,迭代到end的索引值结束,begin的索引值从0开始编号;如果没有指定items属性,就冲begin指定的值开始迭代,直到end值时结束 | 
| end | true | int | 参见begin属性描述 | 
| step | true | int | 指定迭代的步长 | 
| varStatus | false | String | 集合的状态信息 | 
| 属性名 | 类型 | 属性描述 | 
| begin | int | 迭代的开始索引 | 
| end | int | 迭代的结束索引 | 
| first | boolean | 是否当前迭代的第一个元素 | 
| last | boolean | 是否当前迭代的最后一个元素 | 
| count | int | 已经迭代的次数 | 
| current | Object | 当前迭代出来的对象 | 
| index | int | 当前迭代的索引 | 
| step | int | 迭代步长 | 
举例:
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="bean.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>c:forEach标签</title>
  </head>
  <body>
  <strong>c:forEach标签: </strong><br>
  <%
    List<String> list = new ArrayList<>();
    list.add("aa");
    list.add("bb");
    list.add("cc");
    list.add("dd");
    list.add("ee");
    request.setAttribute("list", list);
  %>
  <!-- 指定begin end step属性 -->
  <c:forEach var="str" begin="0" end="4" step="2" items="${list}" varStatus="varStatus" >
    ${str}, begin=${varStatus.begin}, end=${varStatus.end}, count=${varStatus.count}, current=${varStatus.current},
    first=${varStatus.first},last=${varStatus.last}, index=${varStatus.index}, step=${varStatus.step}
    <br>
  </c:forEach>
  <%
    List<User> users = new ArrayList<>();
    users.add(new User("a", "123"));
    users.add(new User("b", "123"));
    users.add(new User("c", "123"));
    users.add(new User("d", "123"));
    users.add(new User("e", "123"));
    request.setAttribute("users", users);
  %>
  <!-- 不指定begin end step属性 -->
  <c:forEach var="user" items="${users}" varStatus="varStatus">
    ${user}, begin=${varStatus.begin}, end=${varStatus.end}, count=${varStatus.count}, current=${varStatus.current},
    first=${varStatus.first},last=${varStatus.last}, index=${varStatus.index}, step=${varStatus.step}
    <br>
  </c:forEach>
  <!-- 不指定items -->
  <c:forEach var="num" begin="1" end="10" >
    ${num},
  </c:forEach>
  </body>
</html>
运行结果:

原文:https://www.cnblogs.com/songchj-bear/p/11071474.html