1.标签函数库

  核心标签库                 c

  I18N格式标签库    fmt

  SQL标签库      sql

  XML标签库      xml

  函数标签库     fn

2.JSTL支持EL

二:表达式标签

1.介绍

  

2.c:out

  可以对敏感的字符进行自动转换,强于EL表达式。

  语法:

  <c:out value="${EL表达式}" >

  属性:

  

3.c:set

  为变量或者javaBean属性赋值的工作。

  属性:

  

  

4.c:remove

  删除存于scope范围内的变量。

  属性:

  

5.程序customer.java

 package bean;

 public class Customer {
private String name;
private int age;
public Customer() { }
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 Customer(String name, int age) {
super();
this.name = name;
this.age = age;
} }

6.index.jsp

 <%@page import="bean.Customer"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
Customer customer=new Customer();
customer.setAge(100);
request.setAttribute("customer", customer);
%>
<!-- c:set 为变量赋值的方式-->
<c:set var="book" value="<java1>" scope="request"></c:set>
<c:set var="date" value="1999-9-1" scope="session"></c:set>
<!-- c:set -->
<c:set target="${requestScope.customer}" property="age" value="88"></c:set> <!-- c:out 为javabean属性赋值的方式-->
<c:out value="${requestScope.book}"></c:out>
<br>
<c:out value="${requestScope.customer.age}"></c:out>
<br>
<c:out value="${sessionScope.date}"></c:out> <!-- c:remove -->
<c:remove var="date" scope="session"/>
<br>
<c:out value="${sessionScope.date}"></c:out>
</body>
</html>

7.效果

  

三:流程控制标签

1.c:if

  属性:

  

2.程序

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- c:if -->
<c:set var="id" value="96" scope="request"></c:set>
<c:if test="${requestScope.id>18}">成年人</c:if>
<br> <!-- c:if的好处:可以将判断结果保存起来,以备以后使用下面是用法 -->
<c:if test="${requestScope.id>18}" var="isAdult" scope="request">成年人</c:if>
<br>
<c:out value="${requestScope.isAdult}"></c:out>
<br> <!-- c:choose c:when c:otherwise -->
<c:set var="age" value="11116" scope="session"></c:set>
<c:choose >
<c:when test="${session.age > 60}">
老年
</c:when>
<c:otherwise>
未成年。。。。。。。。。。。
</c:otherwise>
</c:choose> </body>
</html>

四:迭代标签

1.c:forEach

  为循环控制,可以将Collection中的成员循环浏览一遍。

  属性:

  

  varStatus的用法:

  可以获取索引

  当前第几个

  是否是第一个

  是否是最后一个

2.程序

 <%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="bean.Customer"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- c:foreach 的用法 遍历Collection-->
<%
List<Customer> customer=new ArrayList<Customer>();
customer.add(new Customer("A",1));
customer.add(new Customer("B",2));
customer.add(new Customer("C",3));
customer.add(new Customer("D",4));
customer.add(new Customer("E",5));
request.setAttribute("customer", customer);
%>
<c:forEach items="${requestScope.customer}" begin="0" step="2" end="4" var="cust">
${cust.name} : ${cust.age}<br>
</c:forEach> <br>
<!-- c:foreach 的用法 遍历数组-->
<%
String[] strs=new String[]{"A","B","C"};
request.setAttribute("strs", strs);
%>
<c:forEach items="${requestScope.strs}" var="str">
${str}
</c:forEach> <br><br>
<!-- c:foreach中的status属性的用法 -->
<c:forEach items="${requestScope.customer}" var="cust" varStatus="status">
${status.index}:${status.count}:${status.first}:${status.last}:${cust.name}<br>
</c:forEach> <br>
<!-- c:foreach中的用法,遍历map -->
<%
Map<String,Customer> customer2=new HashMap<String,Customer>();
customer2.put("a",new Customer("A",1));
customer2.put("b",new Customer("B",2));
customer2.put("c",new Customer("C",3));
customer2.put("d",new Customer("D",4));
customer2.put("e",new Customer("E",5));
request.setAttribute("customer2", customer2);
%>
<c:forEach items="${requestScope.customer2}" var="customer2">
${customer2.key }:${customer2.value.name}:${customer2.value.age}<br>
</c:forEach> </body>
</html>

3.效果

  

4.c:forToken

  处理字符串的,类似与String的split方法。

5.程序

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- c:forToken -->
<c:set value="a,c,d;g,h;u" var="test" scope="request"></c:set>
<c:forTokens items="${requestScope.test}" delims=";" var="s">
${s}<br>
</c:forTokens>
</body>
</html>

6.结果

  

五:URL标签操作

1.c:import

  可以包含任何页面到当前页面。

  

2.c:redirect

  使当前页面重定向到指定的页面

3.c:url

  可以产生一个url地址,可以Cookie是否可用来智能URL重写,还能对get请求的参数进行编码

   可以使用c:param为url添加参数,会带参数进行自动转码、

  value中的/代表的是WEB应用的根目录。

4.程序

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>Insert title here</title>
</head>
<body>
<!-- c:import -->
<c:import url="http://www.baidu.com"></c:import> <!-- c:redirect -->
<!-- / 代表WEB应用的根目录,与response.sendRedirect("/")不同,因为标签需要处理类解析 -->
<c:redirect url="/index.jsp"></c:redirect> <!-- c:url -->
<c:url value="/test.jsp" var="testurl">
<c:param name="name" value="tom"></c:param>
</c:url>
URL:${testurl}
</body>
</html>

JSTL使用的更多相关文章

  1. JSP 标准标签库(JSTL)

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

  2. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  3. JavaWeb_day08_EL JSTL

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day08 EL JSTL EL表达式 语法:${} ...

  4. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  5. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  6. JSTL 操作符

    el表达式的取值默认顺序:     pageScope  requestScope  sessionScope  applicationScope     结构,采用.导航,也称为存取器   ${us ...

  7. JSP页面JSTL提供的函数标签EL表达式操作字符串的方法

    首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...

  8. JSTL标签库

    JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...

  9. 重温JSP学习笔记--与日期数字格式化有关的jstl标签库

    上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...

  10. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

随机推荐

  1. Elasticsearch相关概念了解

    mysql ⇒数据库databases       ⇒表tables     ⇒ 行rows        ⇒ 列columns es   ⇒索引indices        ⇒ 类型types    ...

  2. python安装pymssql

    安装pymssql pip install pymssql 关于python安装pymssql报错export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1 然后再 pip ...

  3. javascript精雕细琢(一):var let const function声明的区别

    目录 引言 一.var 二.let 三.const 四.function 五.总结 引言        在学习javascript的过程中,变量是无时无刻不在使用的.那么相对应的,变量声明方法也如是. ...

  4. R8—批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

    一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到 ...

  5. python初步学习-python 模块之 sys(持续补充)

    sys sys 模块包括了一组非常实用的服务,内含很多函数方法和变量 sys 模块重要函数变量 sys.stdin 标准输出流 sys.stdout 标准输出流 sys.stderr 标准错误流 sy ...

  6. 20165230 《Java程序设计》实验四 Android程序设计实验报告

    20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...

  7. Lucene7.1.0版本的索引创建与查询以及维护,包括新版本的一些新特性探索!

    一 吐槽 lucene版本更新实在太快了,往往旧版本都还没学会,新的就出来,而且每个版本改动都特别大,尤其是4.7,6,6,7.1.......ε=(´ο`*)))唉,但不可否认,新版本确实要比旧版本 ...

  8. torch.normal(means, std, out=None)

    返回满足正态分布的张量 means和std分别给出均值和标准差

  9. Hash 分布均衡算法

    1.移位实现 public static int GetIndex(string str, int count) { , (current, c) => (current << ) ...

  10. java基础38 正则表达式

    1.常用的正则表达式  预定义字符类:.  任何字符(与行结束符可能匹配也可能不匹配) \d  数字:[0-9] \D  非数字: [^0-9] \s  空白字符:[ \t\n\x0B\f\r] \S ...