JSTL核心标签库使用

时间:2022-09-27 22:23:57

JSTL是什么?

java standard taglib(java标准标签库)。

标签是什么?

sun公司制订的一种技术规范,用来将jsp页面中的java代码使用类似于html当中的标记来替换 的一种技术。这样做的目的,是为了使jsp页面更好维护以及更好的测试。

JSTL 核心标签库标签共有13个,功能上分为4类:

1.表达式控制标签:out、set、remove、catch

2.流程控制标签:if、choose、when、otherwise

3.循环标签:forEach、forTokens

4.URL操作标签:import、url、redirect

使用标签时,一定要在jsp文件头加入以下代码:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

下面分别对这些标签进行说明:

表达式控制标签:

1. <c:out> 用来显示数据对象(字符串、表达式)的内容或结果

使用Java脚本的方式为:<% out.println("hello") %>  <% =表达式 %>

使用JSTL标签:<c:out value="" default="" escapeXml="">,

  value属性:用于输出指定的值 比如:value="${name}"

  default属性:指定默认的值 比如:default="卡当"

  escapeXml属性:设置成true,会将value中的特殊字符替换成相应的实 体。缺省值就是true。 escapeXml="true"

例如:后台return了一个user对象,并且nickName为user的属性值为"kadang"

     <c:out value="${user.nickName}欢迎您登录"></c:out>
<c:out value="&lt要显示的数据对象(未使用转义字符)&gt" escapeXml="true" default="默认值"></c:out><br/>
<c:out value="&lt要显示的数据对象(使用转义字符)&gt" escapeXml="false" default="默认值"></c:out><br/>
<c:out value="${null}" escapeXml="false">使用的表达式结果为null,则输出该默认值</c:out><br/>

网页的显示效果为:

JSTL核心标签库使用

2. <c:set var="" scope="" value=""> 用于将变量存取于 JSP 范围中或 JavaBean 属性中。绑订一个对象到指定的范围。

var属性:指定一个绑订名

scope属性:指定范围

value:绑定值

下面的例子中假设已经有 Person.java 这个类文件。

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page contentType="text/html; charset=utf-8" %> <jsp:useBean id="person" class="kadang.Person"></jsp:useBean> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSTL测试</title>
</head> <body>
<c:set value="张三" var="name1" scope="session"></c:set>
<c:set var="name2" scope="session">李四</c:set>
<c:set value="赵五" target="${person}" property="name"></c:set>
<c:set target="${person}" property="age">19</c:set>
<li>从session中得到的值:${sessionScope.name1}</li>
<li>从session中得到的值:${sessionScope.name2}</li>
<li>从Bean中获取对象person的name值:<c:out value="${person.name}"></c:out></li>
<li>从Bean中获取对象person的age值:<c:out value="${person.age}"></c:out></li>
</body>
</html>

一共有四种语法格式,前两种是给jsp的范围变量赋值,后两个是给 javabean 变量赋值

效果如下:

JSTL核心标签库使用

3.<c:remove> 主要用来从指定的 jsp 范围内移除指定的变量。使用类似,下面只给出语法:

<c:remove var="变量名" [scope="page|request|session|application"]></c:remove>

4.<c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息

<c:catch var="name1">

      容易产生异常的代码

</c:catch>

如果抛异常,则异常信息保存在变量 name1 中。

流程控制标签:

1.<c:if>

<c:if test="条件1" var="name" [scope="page|request|session|application"]></c:remove>

test属性:当值为true,执行标签体的内容,为false,则不执行。

var属性:指定一个绑订名。

scope属性:指定一个绑定范围。

var属性和scope属性用于将test的结果绑订到指定的对象

假设后台return了一个user对象,并且nickName为user的属性值为"kadang"

<body>
<c:if test="${user.nickName=='kadang'}" var="name1">
您是卡当的会员
</c:if>
<c:if test="${user.nickName=='taobao'}" var="name2">
您是淘宝的会员
</c:if>
<c:out value="${name1}"></c:out>
<c:out value="${name2}"></c:out>
</body>

浏览器显示:

JSTL核心标签库使用

2. <c:choose> <c:when> <c:otherwise> 三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次

<c:choose>
用于分支,当某个条件满足,执行某一个分支。每一个分支条件用when标签来表示。

<c:when test=""> 可出现多次,只用于<c:choose>
test属性: 当值为true,执行标签体的内容
<c:otherwise> 只出现1次,只用于<c:choose> 当其它分支都不满足条件,则执行该标签体的内容。

例:

<body>
<c:set var="score">85</c:set>
<c:choose>
<c:when test="${score>=90}">
你的成绩为优秀!
</c:when>
<c:when test="${score>=70&&score<90}">
您的成绩为良好!
</c:when>
<c:when test="${score>60&&score<70}">
您的成绩为及格
</c:when>
<c:otherwise>
对不起,您没有通过考试!
</c:otherwise>
</c:choose>
</body>

浏览器显示:

JSTL核心标签库使用

循环标签:

1.<c:forEach>语法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>

该标签根据循环条件遍历集合 Collection 中的元素。 var 用于存储从集合中取出的元素;items 指定要遍历的集合;varStatus 用于存放集合中元素的信息。

用于遍历集合items属性:指定要遍历的集合。
var属性: 指定一个绑订名,jsp引擎会从集合当中取一个对象,绑订到 pageContext对象上。
 varStatus属性: 指定一个绑订名,对应的绑订值是一个java对象,封装了遍 历时的一些信息,包括当前遍历的对象的下标(index)以及 是第几次(count)遍历。

varStatus 一共有4种状态属性,下面例子中说明:

<%@ page contentType="text/html;charset=GBK" %>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>JSTL: -- forEach标签实例</title>
</head>
<body>
<h4><c:out value="forEach实例"/></h4>
<hr>
<%
List a=new ArrayList();
a.add("贝贝");
a.add("晶晶");
a.add("欢欢");
a.add("莹莹");
a.add("妮妮");
request.setAttribute("a",a);
%>
<B><c:out value="不指定begin和end的迭代:" /></B><br>
<c:forEach var="fuwa" items="${a}">
&nbsp;<c:out value="${fuwa}"/><br>
</c:forEach>
<B><c:out value="指定begin和end的迭代:" /></B><br>
<c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
&nbsp;<c:out value="${fuwa}" /><br>
</c:forEach>
<B><c:out value="输出整个迭代的信息:" /></B><br>
<c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
&nbsp;<c:out value="${fuwa}" />的四种属性:<br>
&nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" /><br>
&nbsp;&nbsp;总共已迭代的次数:<c:out value="${s.count}" /><br>
&nbsp;&nbsp;是否为第一个位置:<c:out value="${s.first}" /><br>
&nbsp;&nbsp;是否为最后一个位置:<c:out value="${s.last}" /><br>
</c:forEach>
</body>
</html>

浏览器显示效果:

JSTL核心标签库使用

2.<c:forTokens> 用于浏览字符串,并根据指定的字符串截取字符串

法:<c:forTokens items="stringOfTokens" delims="delimiters" [var="name"
begin="begin" end="end" step="len"
varStatus="statusName"]></c:forTokens>

JSTL核心标签库使用

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>JSTL: -- forTokens标签实例</title>
</head>
<body>
<h4>
<c:out value="forToken实例" />
</h4>
<hr>
<c:forTokens items="北、京、欢、迎、您" delims="、" var="c1">
<c:out value="${c1}"></c:out>
</c:forTokens>
<br>
<c:forTokens items="123-4567-8854" delims="-" var="t">
<c:out value="${t}"></c:out>
</c:forTokens>
<br>
<c:forTokens items="1*2*3*4*5*6*7" delims="*" begin="1" end="3"
var="n" varStatus="s">
&nbsp;<c:out value="${n}" />的四种属性:<br>
&nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" />
<br>
&nbsp;&nbsp;总共已迭代的次数:<c:out value="${s.count}" />
<br>
&nbsp;&nbsp;是否为第一个位置:<c:out value="${s.first}" />
<br>
&nbsp;&nbsp;是否为最后一个位置:<c:out value="${s.last}" />
<br>
</c:forTokens>
</body>
</html>

流量器显示:

JSTL核心标签库使用

 

URL操作标签:

1:<c:import> 把其他静态或动态文件包含到 JSP 页面。与<jsp:include>的区别是后者只能包含同一个web应用中的文件,前者可以包含其他web应用中的文件,甚至是网络上的资源。

语法:<c:import url="url" [context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]></c:import>

<c:import url="url"  varReader="name" [context="context"][charEncoding="encoding"]></c:import>

下面看个列子:

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>JSTL: -- import标签实例</title>
</head>
<body>
<h4>
<c:out value="import实例" />
</h4>
<hr>
<h4>
<c:out value="绝对路径引用的实例" />
</h4>
<c:catch var="error1">
<c:import url="http://www.baidu.com" />
</c:catch>
<c:out value="${error1}"></c:out>
<hr>
<h4>
<c:out value="相对路径引用的实例,引用本应用中的文件" />
</h4>
<c:catch>
<c:import url="a1.txt" charEncoding="gbk" />
</c:catch>
<hr>
<h4>
<c:out value="使用字符串输出、相对路径引用的实例,并保存在session范围内" />
</h4>
<c:catch var="error3">
<c:import var="myurl" url="a1.txt" scope="session" charEncoding="gbk"></c:import>
<c:out value="${myurl}"></c:out>
<c:out value="${myurl}" />
</c:catch>
<c:out value="${error3}"></c:out>
</body>
</html>

浏览器显示:

JSTL核心标签库使用

URL路径有个绝对路径和相对路径。

相对路径:<c:import url="a.txt"/>那么,a.txt必须与当前文件放在同一个文件目录下。如果以"/"开头,表示存放在应用程序的根目录下,如 Tomcat应用程序的根目录文件夹为 webapps。导入该文件夹下的 b.txt 的编写方式: <c:import url="/b.txt">。如果要访问webapps管理文件夹中的其他Web应用,就要用context属性。例如访问demoProj下的 index.jsp,则:<c:import url="/index.jsp" context="/demoProj"/>.

2<c:redirect> 该标签用来实现请求的重定向。例如,对用户输入的用户名和密码进行验证,不成功则重定向到登录页面。或者实现Web应用不同模块之间的衔接

语法:<c:redirect url="url" [context="context"]/>

或:<c:redirect url="url" [context="context"]>

<c:param name="name1" value="value1">

</c:redirect>

来看个列子:

 <body>
This is my JSP page. <br>
<c:redirect url="http://127.0.0.1:8080">
<c:param name="uname">lihui</c:param>
<c:param name="password">11111</c:param>
</c:redirect>
</body>

浏览器显示:

注意看浏览器的地址

aaarticlea/png;base64,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*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" alt="" />

3<c:url> 用于动态生成一个 String 类型的URL,可以同上个标签共同使用,也可以使用HTML的<a>标签实验超链接。

语法:<c:url value="value" [var="name"] [scope="..."] [context="context"]>

<c:param name="name1" value="value1">

</c:url>

或:<c:url value="value" [var="name"] [scope="..."] [context="context"]/>

url指定一个jsp文件的地址,jsp会在运行时调用这个jsp。

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:out value="url标签使用"></c:out>
<h4>
使用url标签生成一个动态的url,并把值存入session中.
</h4>
<hr>
<c:url value="http://127.0.0.1:8080" var="url" scope="session">
</c:url>
<a href="${url}">Tomcat首页</a>

浏览器显示:

JSTL核心标签库使用