在myeclipse中新建web项目时,会自动为我们安装JSTL库,如下图:

核心标签是我们最常用的JSTL标签。在JSP页面中引用核心标签库的语法如下:

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

一、<c:out>标签

  <c:out>标签用来显示一个表达式的结果,与jsp中的<%= %>作用相似,语法格式:

  1. <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中的值,如下例子(单标签),网页会输出:默认值

  1. <c:out value="${null}" default="默认值" escapeXml="false" />

上面的写法等价于下面的写法(双标签):

  1. <c:out value="${null}" escapeXml="false">默认值</c:out>

从上面的例子可以看出,value属性值可以是一个EL表达式,这样就可以很方便的输出一个某个值了。如下的例子:输出今天的日期

  1. 1 <%@page import="java.text.SimpleDateFormat"%>
  2. 2 <%@page import="java.text.DateFormat"%>
  3. 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  4. 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  5. 5
  6. 6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. 7 <html>
  8. 8 <head>
  9. 9 <title>c:out 标签举例</title>
  10. 10 <meta http-equiv="pragma" content="no-cache">
  11. 11 <meta http-equiv="cache-control" content="no-cache">
  12. 12 <meta http-equiv="expires" content="0">
  13. 13 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  14. 14 <meta http-equiv="description" content="This is my page">
  15. 15 </head>
  16. 16
  17. 17 <body>
  18. 18 <%
  19. 19 Date date = new Date();
  20. 20 DateFormat f=new SimpleDateFormat("yyyy年MM月dd日");//设置时间格式
  21. 21 String dayDate=f.format(date);
  22. 22 pageContext.setAttribute("date", dayDate);//设置本页范围内的属性
  23. 23 %>
  24. 24 <c:out value="${pageScope.date }" escapeXml="true"> 这是默认值</c:out>
  25. 25 </body>
  26. 26 </html>

输出:

二、<c:set>标签

  <c:set>标签用于设置变量值和对象属性。语法格式:

  1. <c:set var="存储信息的变量" value="要存储的值" target="要修改的属性所属的对象" property="要修改的属性" scope="var属性的作用域"/>

设置一个在page范围内属性名为info的属性,如下:

  1. <c:set var="info" value="www.cnblogs.com" scope="page" />

然后就可以通过<c:out>标签来输出,但是只能在本页面中获取到info ,因为上面标明范围是在本页面中:

  1. <c:out value="${info }"></c:out>

<c:set>标签中的target、property属性是对一个具体对象进行操作的。举个栗子:

首先,需要建一个java类(Student.java):

  1. package cn.cqvie;
  2.  
  3. public class Student {
  4. private String name;
  5. private int age;
  6. public String getName() {
  7. return name;
  8. }
  9. public void setName(String name) {
  10. this.name = name;
  11. }
  12. public int getAge() {
  13. return age;
  14. }
  15. public void setAge(int age) {
  16. this.age = age;
  17. }
  18. }

然后建一个jsp页面,用<c:set>标签来给一个student对象设置属性值,最后<c:out>标签来输出:

  1. 1 <%@page import="cn.cqvie.*" %>
  2. 2 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  3. 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  4. 4
  5. 5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  6. 6 <html>
  7. 7 <head>
  8. 8 <title>c:out 标签举例2</title>
  9. 9 <meta http-equiv="pragma" content="no-cache">
  10. 10 <meta http-equiv="cache-control" content="no-cache">
  11. 11 <meta http-equiv="expires" content="0">
  12. 12 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  13. 13 <meta http-equiv="description" content="This is my page">
  14. 14 </head>
  15. 15
  16. 16 <body>
  17. 17 <%
  18. 18 Student s=new Student();
  19. 19 pageContext.setAttribute("stu", s);
  20. 20 %>
  21. 21 <c:set var="sname" value="刘备" target="${stu }" property="name" scope="page"></c:set>
  22. 22 <c:set var="sage" value="20" target="${stu }" property="age" scope="page"></c:set>
  23. 23 <c:out value="${pageScope.sname }" escapeXml="true"> 这是默认值</c:out><br>
  24. 24 <c:out value="${pageScope.sage }" escapeXml="true"> 这是默认值</c:out>
  25. 25 </body>
  26. 26 </html>

运行web页面后显示:

三、<c:remove>标签

  <c:remove>标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。这个标签不是特别有用,不过可以用来确保JSP完成清理工作。

    语法格式:

  1. <c:remove var="要移除的变量名称" scope="变量所属的作用域"/>

我们将上个例子中的sage(即年龄属性)移除,核心代码块如下:

  1. <body>
  2. <%
  3. Student s=new Student();
  4. pageContext.setAttribute("stu", s);
  5. %>
  6. <c:set var="sname" value="刘备" target="${stu }" property="name" scope="page"></c:set>
  7. <c:set var="sage" value="20" target="${stu }" property="age" scope="page"></c:set>
  8. <c:remove var="sage" scope="page"/>
  9. <c:out value="${pageScope.sname }" escapeXml="true"> 这是默认值</c:out><br>
  10. <c:out value="${pageScope.sage }" escapeXml="true"> 这是默认值</c:out>
  11. </body>

网页显示效果:

四、<c:catch>标签

   <c:catch> 标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。语法格式:

  1. <c:catch var="用来储存错误信息的变量">
  2. 可能存在异常的代码
  3. </c:catch>

举个栗子:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  3.  
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <title>c:catch 举例</title>
  8.  
  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. <c:catch var="errorMsg">
  18. <%
  19. int result = 10/0;
  20. %>
  21. </c:catch>
  22.  
  23. 异常为:${errorMsg }<br>
  24. 异常信息是:${errorMsg.message }
  25. </body>
  26. </html>

网页显示:

五、<c:if>标签

  <c:if>标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。语法格式:

  1. <c:if test="条件" var="用于存储条件结果的变量" scope="var属性的作用域">
  2. 当test条件为真(var中变量值为true),执行的代码块
  3. </c:if>

举例:

  1. <body>
  2. <c:if test="${param.name=='xiaosongshu' }" var="result">
  3. <h3>欢迎${param.name}光临</h3>
  4. </c:if>
  5. 看一看result的值:${result}
  6. </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>。

语法格式:

  1. <c:choose>
  2. <c:when test="条件1"/>
  3. 当条件1成立时执行的代码块
  4. </c:when>
  5. <c:when test="条件2"/>
  6. 当条件2成立时执行的代码块
  7. </c:when>
  8. ...
  9. <c:when test="条件n"/>
  10. 当条件n成立时执行的代码块
  11. </c:when>
  12. <c:otherwise>
  13. 当条件1-条件n都不成立执行的代码块
  14. </c:otherwise>
  15. </c:choose>

举例如下:

  1. <body>
  2. <c:set var="num" value="30"></c:set>
  3. <c:choose>
  4. <c:when test="${num==10 }">
  5. <h3>num的值是10</h3>
  6. </c:when>
  7. <c:when test="${num==20 }">
  8. <h3>num的值是20</h3>
  9. </c:when>
  10. <c:otherwise>
  11. <h3>以上条件都不成立</h3>
  12. </c:otherwise>
  13. </c:choose>
  14. </body>

在<c:choose>, <c:when>, <c:otherwise> 三个标签中,只有<c:when>标签有一个条件(test)属性,其它两个标签都没有属性。

JSP标准标签库(JSTL)之核心标签(上)的更多相关文章

  1. JSP标准标签库JSTL

    1.什么是JSTL? JSP标准标签库(JSP Standard Tag Library) 2.JSTL标准标签库中的常用标签 JSTL是JSP页面的标签库,实质上是一段Java代码.我们常用的是它的 ...

  2. JSP标准标签库(JSTL)--SQL标签库 sql

    了解即可.SQL标签库 No. 功能分类 标签名称 描述 1 数据源标签 <sql:setDataSource> 设置要使用的数据源名称 2 数据库操作标签 <sql:query&g ...

  3. JSTL的核心标签

    JSTL的核心标签: .if: 语法:<c:if test="" var="" scope=""></c:if> 当 ...

  4. JSTL教程 [JSP 标准标记库]

    JSTL教程- - JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式 ...

  5. 1.5 JSP标准标签库(JSTL)(核心标签 out、set、remove、if、choose、forEach、forTokens、redirect)

    JSTL(JavaServer Page Standard Tag  Library):JSP标准标签库.它封装了JSP应用的通用核心功能. 1.准备工作 使用JSTL前需要下载所需文件,下载地址及安 ...

  6. JSP标准标签库(JSTL)--核心标签库 c

    核心标签库是JSTL中最重要的部分,可以完成输出,判断,迭代等操作 功能分类: 1. 基本标签: <c:out>:输出属性内容 <c:set>:设置属性内容 <c:rem ...

  7. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  8. JSP标准标签库(JSTL)--JSTL简介与安装

    对于MVC设计模式来讲,我们一直强调,在一个JSP钟scriptlet代码越少越好,但是只靠以前的概念很难实现,因为标签的开发特别麻烦,所以为了简化标签,也为了让标签更具备一些通用性,所以一般在开发中 ...

  9. JSP 标准标签库JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  10. jsp标准标签库——jstl

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

随机推荐

  1. ajax返回值给上层函数的方法。

    function load_val(callback){//定义一个回调函数 $.getJSON('test.php' , function(dat){ callback(data);//将返回结果当 ...

  2. linux+php+apache+mysql(mariadb)故障排除

    wordpress 网页文件打不开(client denied by server).白屏(http 500)问题排除顺序 1.查看apache错误日志查照问题报告找到问题 “client denie ...

  3. C++学习基础五之函数参数——形参

    一.理论部分 C++中函数形参主要分为两类,如图1所示, 图1 总结: 一.当函数参数为非引用形参时,传进函数体内的是实参的拷贝,(注意,对于基本类型而言,拷贝的是实参的值,对于指针而言拷贝的是实参的 ...

  4. 开发《基于Arcgis Online的家政管理服务信息系统》随笔1

    1.在webservice中写的方法参数里面含有数组,如:public DataTable AdvSearch1(int ServiceArea, params string[] nas), 在发布之 ...

  5. 通过微信企业号发送zabbix报警

    采用微信报警时,管理员账户中必须要设置"示警媒体"一项,"收件人"一项可随便填写一下.其它成员则可以不用添加设置. ---------------------- ...

  6. C++STL算法速查

      非变易算法 /* 第21章 非变易算法 Non-modifying sequence operations 21.0 advance, distance 为了了解模板,先了解一下这两个迭代器操作函 ...

  7. hdu 2196 computer

    Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  8. Tank游戏需求分析兼项目计划发布!

    项目计划 1.   编写目的 此需求文档旨在明确本游戏项目的详细规则和操作方法,供用户理解项目实现的具体功能,并作为项目详细设计开发的基础. 2.   项目背景 市面上游许多魔性小游戏,让广大玩家根本 ...

  9. Echarts data数据为空时,显示“-”

    { name:'2007', type:'bar', data:["","",""]} 解决办法: 写成data:["" ...

  10. Diagramming for WinForms 教程一(读取图元数据)

    1,新建“Visual c#” Windows窗体应用程序. 2,从“工具箱”的“Diagramming”选项卡下,托出“DiagramView”控件到Form1上.控件的"Name&quo ...