JSP标准标签库(JSTL)之核心标签(上)
在myeclipse中新建web项目时,会自动为我们安装JSTL库,如下图:

核心标签是我们最常用的JSTL标签。在JSP页面中引用核心标签库的语法如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
一、<c:out>标签
<c:out>标签用来显示一个表达式的结果,与jsp中的<%= %>作用相似,语法格式:
<c:out value="要输出的内容" default="输出的默认值" escapeXml="是否忽略XML特殊字符"/>
其中,value属性是必需的,其它两个属性不是必需的,escapeXml的默认值是true。
如果为escapeXml="false",则将其中的html、xml解析出来。
如value="<font size=16>java</font>",会显示为大小为16的”java“ ,
如果为escapeXml="true",则显示<font size=16>java</font>。
如果value中的值是空值,则输出default中的值,如下例子(单标签),网页会输出:默认值
<c:out value="${null}" default="默认值" escapeXml="false" />
上面的写法等价于下面的写法(双标签):
<c:out value="${null}" escapeXml="false">默认值</c:out>
从上面的例子可以看出,value属性值可以是一个EL表达式,这样就可以很方便的输出一个某个值了。如下的例子:输出今天的日期
1 <%@page import="java.text.SimpleDateFormat"%>
2 <%@page import="java.text.DateFormat"%>
3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
5
6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
7 <html>
8 <head>
9 <title>c:out 标签举例</title>
10 <meta http-equiv="pragma" content="no-cache">
11 <meta http-equiv="cache-control" content="no-cache">
12 <meta http-equiv="expires" content="0">
13 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
14 <meta http-equiv="description" content="This is my page">
15 </head>
16
17 <body>
18 <%
19 Date date = new Date();
20 DateFormat f=new SimpleDateFormat("yyyy年MM月dd日");//设置时间格式
21 String dayDate=f.format(date);
22 pageContext.setAttribute("date", dayDate);//设置本页范围内的属性
23 %>
24 <c:out value="${pageScope.date }" escapeXml="true"> 这是默认值</c:out>
25 </body>
26 </html>
输出:

二、<c:set>标签
<c:set>标签用于设置变量值和对象属性。语法格式:
<c:set var="存储信息的变量" value="要存储的值" target="要修改的属性所属的对象" property="要修改的属性" scope="var属性的作用域"/>
设置一个在page范围内属性名为info的属性,如下:
<c:set var="info" value="www.cnblogs.com" scope="page" />
然后就可以通过<c:out>标签来输出,但是只能在本页面中获取到info ,因为上面标明范围是在本页面中:
<c:out value="${info }"></c:out>
<c:set>标签中的target、property属性是对一个具体对象进行操作的。举个栗子:
首先,需要建一个java类(Student.java):
package cn.cqvie;
public class Student {
private String name;
private int age;
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;
}
}
然后建一个jsp页面,用<c:set>标签来给一个student对象设置属性值,最后<c:out>标签来输出:
1 <%@page import="cn.cqvie.*" %>
2 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
4
5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
6 <html>
7 <head>
8 <title>c:out 标签举例2</title>
9 <meta http-equiv="pragma" content="no-cache">
10 <meta http-equiv="cache-control" content="no-cache">
11 <meta http-equiv="expires" content="0">
12 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
13 <meta http-equiv="description" content="This is my page">
14 </head>
15
16 <body>
17 <%
18 Student s=new Student();
19 pageContext.setAttribute("stu", s);
20 %>
21 <c:set var="sname" value="刘备" target="${stu }" property="name" scope="page"></c:set>
22 <c:set var="sage" value="20" target="${stu }" property="age" scope="page"></c:set>
23 <c:out value="${pageScope.sname }" escapeXml="true"> 这是默认值</c:out><br>
24 <c:out value="${pageScope.sage }" escapeXml="true"> 这是默认值</c:out>
25 </body>
26 </html>
运行web页面后显示:

三、<c:remove>标签
<c:remove>标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。这个标签不是特别有用,不过可以用来确保JSP完成清理工作。
语法格式:
<c:remove var="要移除的变量名称" scope="变量所属的作用域"/>
我们将上个例子中的sage(即年龄属性)移除,核心代码块如下:
<body>
<%
Student s=new Student();
pageContext.setAttribute("stu", s);
%>
<c:set var="sname" value="刘备" target="${stu }" property="name" scope="page"></c:set>
<c:set var="sage" value="20" target="${stu }" property="age" scope="page"></c:set>
<c:remove var="sage" scope="page"/>
<c:out value="${pageScope.sname }" escapeXml="true"> 这是默认值</c:out><br>
<c:out value="${pageScope.sage }" escapeXml="true"> 这是默认值</c:out>
</body>
网页显示效果:

四、<c:catch>标签
<c:catch> 标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。语法格式:
<c:catch var="用来储存错误信息的变量">
可能存在异常的代码
</c:catch>
举个栗子:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>c:catch 举例</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head> <body>
<c:catch var="errorMsg">
<%
int result = 10/0;
%>
</c:catch> 异常为:${errorMsg }<br>
异常信息是:${errorMsg.message }
</body>
</html>
网页显示:

五、<c:if>标签
<c:if>标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。语法格式:
<c:if test="条件" var="用于存储条件结果的变量" scope="var属性的作用域">
当test条件为真(var中变量值为true),执行的代码块
</c:if>
举例:
<body>
<c:if test="${param.name=='xiaosongshu' }" var="result">
<h3>欢迎${param.name}光临</h3>
</c:if>
看一看result的值:${result}
</body>
在网页中请求页面时需要传一个name属性,如:http://localhost:5200/JSTLtest/if.jsp?name=xiaosongshu
看到结果:

六、<c:choose>, <c:when>, <c:otherwise> 标签
<c:choose>标签与Java中的switch语句的功能一样,用于在众多选项中做出选择。
switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。
语法格式:
<c:choose>
<c:when test="条件1"/>
当条件1成立时执行的代码块
</c:when>
<c:when test="条件2"/>
当条件2成立时执行的代码块
</c:when>
...
<c:when test="条件n"/>
当条件n成立时执行的代码块
</c:when>
<c:otherwise>
当条件1-条件n都不成立执行的代码块
</c:otherwise>
</c:choose>
举例如下:
<body>
<c:set var="num" value="30"></c:set>
<c:choose>
<c:when test="${num==10 }">
<h3>num的值是10</h3>
</c:when>
<c:when test="${num==20 }">
<h3>num的值是20</h3>
</c:when>
<c:otherwise>
<h3>以上条件都不成立</h3>
</c:otherwise>
</c:choose>
</body>
在<c:choose>, <c:when>, <c:otherwise> 三个标签中,只有<c:when>标签有一个条件(test)属性,其它两个标签都没有属性。
JSP标准标签库(JSTL)之核心标签(上)的更多相关文章
- JSP标准标签库JSTL
1.什么是JSTL? JSP标准标签库(JSP Standard Tag Library) 2.JSTL标准标签库中的常用标签 JSTL是JSP页面的标签库,实质上是一段Java代码.我们常用的是它的 ...
- JSP标准标签库(JSTL)--SQL标签库 sql
了解即可.SQL标签库 No. 功能分类 标签名称 描述 1 数据源标签 <sql:setDataSource> 设置要使用的数据源名称 2 数据库操作标签 <sql:query&g ...
- JSTL的核心标签
JSTL的核心标签: .if: 语法:<c:if test="" var="" scope=""></c:if> 当 ...
- JSTL教程 [JSP 标准标记库]
JSTL教程- - JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式 ...
- 1.5 JSP标准标签库(JSTL)(核心标签 out、set、remove、if、choose、forEach、forTokens、redirect)
JSTL(JavaServer Page Standard Tag Library):JSP标准标签库.它封装了JSP应用的通用核心功能. 1.准备工作 使用JSTL前需要下载所需文件,下载地址及安 ...
- JSP标准标签库(JSTL)--核心标签库 c
核心标签库是JSTL中最重要的部分,可以完成输出,判断,迭代等操作 功能分类: 1. 基本标签: <c:out>:输出属性内容 <c:set>:设置属性内容 <c:rem ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- JSP标准标签库(JSTL)--JSTL简介与安装
对于MVC设计模式来讲,我们一直强调,在一个JSP钟scriptlet代码越少越好,但是只靠以前的概念很难实现,因为标签的开发特别麻烦,所以为了简化标签,也为了让标签更具备一些通用性,所以一般在开发中 ...
- JSP 标准标签库JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...
- jsp标准标签库——jstl
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...
随机推荐
- PDF表单域(FormField)在HTML显示与提交数据到服务器
1.Adobe Arobat Pro等可以编辑表单域,只有几种控件: 2.展示PDF,可用PdfObject.js,Chrome自带? @{ViewBag.Title = @ViewBag.aaa;} ...
- NHibernate系列文章七:NHibernate对象状态
摘要 NHibernate对象持久化 NHibernate对象的三个状态:临时态.持久态.游离态(托管态) NHibernate三状态的相互转化 1. NHibernate对象持久化 NHiberna ...
- Java中的字符串常量池
ava中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new ...
- Egret和Http请求 (Ajax、XMLHttpRequest、Post、Get)
一 Http请求 二 AJax和XMLHttpRequest 三 一个Ajax例子 四 Egret中的egret.HttpRequest 五 Post和Get区别 一 Http请求 Http深入 ...
- Java基础以及与C++的一些对比
这两天回忆一些Java基础,感觉自己很多地方都不是很牢固,也花费在不少时间和不少流量在手机上查资料. 还是写下来这些东西以免再忘记. 同时还是要记住多动手,编程最重要的就是动手敲啊,有想法有疑问就要自 ...
- VerbalExpressions ——另类正则表达式
对于文本处理来说,正则表达式无疑是一个非常强大的工具.但是编写和阅读正则表达式往往就不是那么一件非常愉快的事情了.本文在这里介绍另一种另类的正则表达式——VerbalExpressions,它采用函数 ...
- APP测试工具之TraceView卡顿检测
Traceview卡顿检测 Traceview是Android平台特有的数据采集和分析工具,集成在DDMS工具中,可以采集程序中的方法执行耗时.调用关系.调用次数以及资源占用等情况. 一.使用方法 1 ...
- delegate事件绑定
为了代码的健壮性,绑定事件之前先解绑再进行绑定. var _$div = $("#id");_$div.undelegate("click mouseover mouse ...
- codeforces 361 A - Mike and Cellphone
原题: Description While swimming at the beach, Mike has accidentally dropped his cellphone into the wa ...
- [2015hdu多校联赛补题]hdu5303 Delicious Apples
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 题意:在一个长为L的环形路径上种着一些苹果树,告诉你苹果树的位置(题目中以0~L指示坐标)及苹果 ...