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/>

网页的显示效果为:

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 变量赋值

效果如下:

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>

浏览器显示:

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>

浏览器显示:

循环标签:

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>

浏览器显示效果:

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

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

<%@ 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>

流量器显示:

 

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>

浏览器显示:

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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" 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核心标签库使用的更多相关文章

  1. JSTL 核心标签库 使用

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  2. JSTL 核心标签库 使用(C标签)

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  3. 【JSP】JSTL核心标签库的使用方法和示例

    JSTL 核心标签库 JSTL 核心标签库标签共有13个,功能上分为4类: 1. 表达式控制标签:out.set.remove.catch 2. 流程控制标签:if.choose.when.other ...

  4. EL表达式和JSTL核心标签库

    1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...

  5. Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架

    JSTLApache提供的标签库 jar包:jstl-1.2.jar,如果传MyEclipse,他会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入.--------- ...

  6. JavaWeb——JSTL 核心标签库使用

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  7. 小峰servlet/jsp(6)jstl核心标签库

    一.引入jstl 需要jstl.jar;standard.jar; 二.jstl核心标签库: c:out         内容输出标签; c:set      用来设置4种属性范围值的标签: c:re ...

  8. jsp之jstl核心标签库

    JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代 ...

  9. Java Servlet(十):JSTL核心标签库

    JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ...

随机推荐

  1. CSS3--选择器

    子元素选择器: div>p{background:yellow:} 相邻的后兄弟选择器(必须相邻) h1+p{padding-top:20px:} 后兄弟选择器(同级的当前元素后面的元素) di ...

  2. eclipse里面设置JVM参数的问题

    在run----run configuration---Agruments里面设置JVM的参数:  -Xms256m   -Xmx1024m 肯定还有别的方式设置,今天就先写这一种方法.待续...

  3. 转自知乎:GitHub基本功能

    作者:Fadeoc Khaos 链接:https://www.zhihu.com/question/20070065 来源:知乎 著作权归作者所有Github的基本功能: Repository:你和我 ...

  4. [Chapter 3 Process]Practice 3.3 Discuss three major complications that concurrent processing adds to an operating system.

    3.3  Original version of Apple's mobile iOS operating system provied no means of concurrent processi ...

  5. PHP 数组排序

    数组中的元素能够以字母或数字顺序进行升序或降序排序. PHP - 数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: sort() - 以升序对数组排序 rsort() - 以降序对数组 ...

  6. asp.net简单小爬虫

    所谓爬虫简单点说,就是把别人网站上的东西爬下来,至于爬做什么用就看你自己了,比如:把别人网站上的东西爬下来放在自己网站中(感觉有点像小偷^v^). 这里随便写了一个爬虫代码(可以自己再去进行完善): ...

  7. 【转】Linux下打包压缩war和解压war包

    解压demo.war $ mkdir demo //解压前建议先创建目录,否则直接解压到当前目录了 $ cd demo/ $ jar -xvf ../demo.war 解压到指定的demo目录,然后就 ...

  8. replicate-rewrite-db

    replicate-rewrite-db: Tells the slave to translate the default database (that is, the one selected b ...

  9. Learning OpenCV

    1. 读取图片 opencv/highgui.h 2. 读取视频 opencv/cv.h opencv/highgui.h 3. 高斯平滑滤波 4. 灰度单通道与边缘检测 5. 摄像头打开 void ...

  10. (并查集)~APTX4869(fzu 2233)

    http://acm.fzu.edu.cn/problem.php?pid=2233 Problem Description 为了帮助柯南回到一米七四,阿笠博士夜以继日地研究APTX4869的解药.他 ...