<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