常用核心标签介绍
JSTL的核心标签共13个,从功能上可以分为4类:
1)表达式控制标签
<c:out>、<c:set>、<c:remove>、<c:catch>
2)流程控制标签
<c:if>、<c:choose>、<c:when>、<c:otherwise>
3)循环标签
<c:forEach>、<c:forTokens>
4)URL操作标签
<c:import>、<c:url>、<c:redirect>
<c:out>标签
<c:out>标签是显示表达式的结果,类似的方式<%=%>效果,与其不同的是<c:out>标签可以使用简单的"."操
作符来访问属性。例如,要访问customer.address.street,使用的标签是:
<c:out value="customer.address.street"/>
<c:out>标签可自动转义XML标签,以便他们都不会计算为实际的标签。
<c:out>标签具有以下属性:
<c:out>标签的用法:
1)输出常量:可在属性value中直接赋值
2)输出变量:变量不存在时可配合defalut属性输出默认值,还可以通过属性escapeXml控制转义字符的输出方
式。
实例:
结果:
<c:set>标签
<c:set>标签是JSTL的setProperty动作的友好版本。标签是有用的,因为它的表达式求值,并使用结果的
JavaBean或java.util.Map对象设置一个值。
<c:set>标签具有以下属性:
如果指定目标,属性也必须指定。
<c:set>标签的用法:
1)存值到scope中:可将值以变量形式存放在指定的范围中(2种方式)
2)存值到JavaBean的属性中
实例:
实例类Person的代码:
package com.entity; /** * 实体类Person * @author Administrator * @date 2016年7月27日 */ public class Person { private String name; private int age; private String hobby; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } }
NewFile.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 导入JSTL标签库 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- 导入实例类Person --> <jsp:useBean id="person" class="com.entity.Person" /> <!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=UTF-8"> <title>JSTL使用</title> </head> <body> <h1>JSTL标签的使用</h1> <hr> <!-- 存值到scope中 --> <!-- 方式一 --> <c:set value="today" var="day" scope="session" /> <c:out value="${day}" /><br/> <!-- 方式二 --> <c:set var="love" scope="application" >football</c:set> <c:out value="${love}" /><br/> <!-- 通过set标签向person中赋值 --> <c:set target="${person}" property="name" value="Jack"/> <c:out value="${person.name}" /><br/> <c:set target="${person}" property="age" >22</c:set> <c:out value="${person.age}" /><br/> </body> </html>
结果:
<c:remove>标签
<c:remove>标签是删除变量,无论是从指定的范围内或范围内的变量(如果没有指定范围)。这个动作通常是不
特别有帮助,但它可以帮助确保一个JSP范围内的资源,它负责清理。
<c:remove>标签具有以下属性:
<c:remove>标签的用法:
移除掉某个变量,var属性是必选的;scope属性是可选的。
实例:
结果:
<c:catch>标签
<c:catch>标签捕获任何异常信息,发生在它的身上,有选择地公开。简单地用于错误处理,更优雅地处理这
个问题。
<c:catch>标签具有以下属性:
<c:catch>标签的用法:
可以包含那些容易出错的JSTL标签(逻辑)。
实例:
结果:
<c:if>标签
<c:if>标签计算表达式,只有当表达式的值为true,则显示其主体内容。
<c:if>标签具有以下属性:
<c:if>标签的用法:
同程序中的if作用相同,用来实现分支条件控制。
text属性用于存放判断的条件,一般使用EL表达式来编写;
var属性是指定名称用来存放判断的结果类型为true或false;
scope属性是用来存放var属性存放的范围。
实例:
根据用户输入的成绩进行等级判断
结果:
这个例子没有做完,使用<c:if>标签实现比较繁琐,我们后面可以使用<c:choose>标签以及<c:when>标签来实
现。