JSTL介绍及使用
JSTL介绍及使用
一、JSTL(JSP Standard Tag Library)简介
> JSTL是JSP的标准标签库
> JSTL为我们提供了一些常用的标签,供我们日常开发使用(if 、 if...else 、遍历 、 日期格式化)
> 标签库
- core :核心标签库
- 最常用的一个标签库,也就是我们熟悉c标签。
- fn :函数标签库
- 函数标签库它需要结合EL表达式使用,主要定义了一些字符串操作的方法。
- fmt :格式化标签库
- 主要用来做日期、数字的格式化以及国际化
- 20151019 2015/10/19 10/19/2015
- 10000 10,000
- sql : 数据库标签库
- 主要用来在JSP中操作数据库的,已淘汰
- xml : xml标签库
- 主要用来在JSP操作解析XML文档,已淘汰
> JSTL的使用
使用JSTL需要先导入两个jar包
taglibs-standard-impl-1.2.1.jar
taglibs-standard-spec-1.2.1.jar
二、 核心标签库
- 导入核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 核心标签库一般使用c作为前缀,所以我们也称核心标签库为c标签。
- c标签是我们JSTL中最常用的一个标签库,它里边封装了很多开发中常用的功能。
c:out
作用:向页面中输入一个内容,一般要结合EL表达式使用!
例子:<c:out value="" default="" escapeXml=""></c:out>
属性:
value : 要输出内容
default : 当内容为空时显示的默认值
escapeXml : 是否自动转义特殊字符,默认值为true 自动转义,一般不修改该属性
c:set
作用:向域中设置一个属性
例子:<c:set var="name" value="孙悟空" scope="request"></c:set>
属性:
var :向域中存储的属性名
value :向域中存储的属性值
scope :向那个域中添加属性,四个可选值(page request session application),默认是page
c:remove
作用:移除域中的一个属性
例子:<c:remove var="name" scope="session"/>
属性:
var :要移除的属性的名字
scope :要移除的属性所在的域,四个可选值(page request session application)
如果不设置该属性,则默认移除四个域中指定属性。
c:if
作用 :相当于java中if语句
例子:
<c:if test="${empty param.name }">
<h3>您没有输入name属性!</h3>
</c:if>
属性:
test :接收一个boolean类型的值
如果test的值为true则标签体执行
否则不执行标签体
c:choose c:when c:otherwise
作用:相当于if...else
例子:
<c:choose>
<c:when test="${param.score == 100 }">
<h3>恭喜您考了100分!</h3>
</c:when>
<c:otherwise>
<h3>恭喜你,你不及格!</h3>
</c:otherwise>
</c:choose>
属性:
when标签中的test属性:
接收一个boolean类型的值
如果test的值为true则标签体执行
否则不执行标签体
注意:在choose标签中可以指定多个when标签,但是只有一个when会执行。
当所有的when标签都不执行时,则otherwise标签执行。
c:when和c:otherwise不能脱离c:choose使用。
c:forEach
作用:可以在页面中对集合进行遍历
例子:
<c:forEach items="${list}" var="hero">
${hero} <br />
</c:forEach>
<c:forEach items="${map }" var="user">
${user.key} --- ${user.value} <br />
</c:forEach>
属性:
items:要遍历的集合
var:对集合中的对象引用的名字
注意:在遍历Map时,返回的是一组一组的键值对结构
我们可以通过对象.key获取键,通过对象.value获取值
作用:可以用来遍历一组数
例子:
<c:forEach begin="1" end="20" var="index" step="1">
<a href=#>${index}</a>
</c:forEach>
属性:
begin :开始的位置,注意begin不能小于0
end :结束的位置
var :引用的名字
step :步长,每次自增的大小
c:url
作用:可以创建一个完整的绝对路径
例子:
<c:url value="/index.jsp">
<c:param name="name" value="孙悟空"></c:param>
<c:param name="age" value="18"></c:param>
</c:url>
属性:
value:要设置的地址,注意该地址要以/开头,否则不会加上项目名
在url标签中可以添加c:param标签,可以自动为地址拼接上请求参数。
c:redirect
作用:请求的重定向
例子:
<c:redirect url="/index.jsp">
<c:param name="name" value="唐僧"></c:param>
</c:redirect>
属性:
url:
重定向到目标地址,注意该地址不要自己添加项目名。
在redirect标签中可以添加c:param标签,可以自动为地址拼接上请求参数。
注意:redirect标签会自动为我们设置项目名,不需要我们手动设置!
设置绝对路径的三种方式:
1.<c:set var="ctx" value="${pageContext.request.contextPath }"></c:set>
使用这种方式,可以通过${ctx}在页面中代替项目名
2.使用<c:url value="/index.jsp"></c:url>
使用url标签,它会自动为绝对路径加上项目名
3.<base href="http://${pageContext.request.serverName
}:${pageContext.request.serverPort }${pageContext.request.contextPath
}/" />
使用base标签可以为页面中所有的相对路径,加上项目名
三、 函数标签库
作用:函数标签库需要配合EL表达式使用,它里面的方法都是一些字符串的操作
引入函数标签库:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
例子:
${fn:contains("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串
${fn:containsIgnoreCase("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串,不区分大小写
${fn:endsWith("hello","alo") }<br /> 判断前一个字符串是否以后一个字符串结尾
<!-- 自动将特殊字符转义 -->
${fn:escapeXml("<html></html>") }<br /> 自动将特殊字符进行转义
<!-- fn:join用于将一个String数组转换一个字符串,第二个参数代表的连接符 -->
${fn:join(strs,",") }<br /> 将一个String数组,以指定字符串拼接为一个新的字符串
${fn:split("a,b,c,d,e",",")[2] }<br /> 将一个字符串,以指定字符拆分为一个字符数组
${fn:trim(" abcd ") }<br /> 去掉字符串的前后空格
剩下方法参照 alt+/
JSTL介绍及使用的更多相关文章
- JSTL介绍
JSTL介绍 一.介绍 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标 ...
- java Web JSTL介绍及基本应用
由于实际开发中我们一般不能在jsp页面上写java代码,而el表达式也做不了判断 循环之类的复杂操作,为了弥补这些缺点,所以就有了JSTL. 简介 JavaServer Pages Standard ...
- [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 四种会话跟踪技术以及jstl介绍
四种会话跟踪技术 page:代表与一个页面相关的对象和属性.一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示.这既包括 ...
- JSTL中的TLD配置和使用。
一,JSTL介绍: JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一 ...
- JSP简单介绍
前言 知识点 1.JSP是什么 java server page,javaserver端页面技术.其主要作用在server端动态生成页面, 其组成java代码和html, 2.JSP的组成 ...
- JSTL标签库的基本教程之核心标签库(一)
JSTL介绍 Java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭代,条 ...
- 第75节:Java的中的JSP,EL和JSTL
第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...
- jsp之jstl核心标签库
JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代 ...
随机推荐
- jquery datables ajax分页后的点击事件无效是怎么回事
异步请求数据后,动态向table中追加行,行点击事件失效 动态加入到DOM中的对象无法继承原有的事件,所以无效,举例: // $.ajax... ajax部分省略 var tr = "&qu ...
- 2018.08.01 BZOJ4552: [Tjoi2016&Heoi2016]排序(二分+线段树)
传送门 线段树简单题. 二分答案+线段树排序. 实际上就是二分答案mid" role="presentation" style="position: relat ...
- hdu-1166(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 思路:线段树模板 #include<iostream> #include<cs ...
- HDU 1513 && POJ 1159 Palindrome (DP+LCS+滚动数组)
题意:给定一个字符串,让你把它变成回文串,求添加最少的字符数. 析:动态规划是很明显的,就是没有了现思路,还是问的别人才知道,哦,原来要么写,既然是回文串, 那么最后正反都得是一样的,所以我们就正反求 ...
- DDR的型号问题
一.DDR的容量大小 先看下micron公司对DDR3命名的规则: 1.meg的含义: 内存中Meg的含义:Meg就是兆的含义,即1000,000. MT47H64M16 – 8 Meg x 16 x ...
- uva 579 ClockHands 几何初接触 求时针与分针的夹角
貌似是第一次接触几何题... 求时针与分针的夹角,这不是小学生的奥数题么.我小时候也想过这问题的. 每过一小时时针走1/12*360=30度,每过一分钟时针走1/60*30=0.5度,分针走1/60* ...
- EBS-DBA 维护
--查询表空间使用率: SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...
- 如何充分利用 Windows Phone 高清屏幕
Nokia 最近发布两款6寸大屏手机:Lumia 1520 和 Lumia 1320.为了支持这种设备 WP 升级了操作系统GDR3 支持了 1080P 的高清分辨率(1520),虽然GER3 是提供 ...
- git archive命令详解
git archive可以将加了tag的某个版本打包提取出来,例如: git archive -v --format= > v0..zip --format表示打包的格式,如zip,-v表示对应 ...
- Easy Ui 的reload 问题
当我删除某条数据时,删除成功后要刷新datagrid 这时调用reload方法就不成功,而要用下面的方式. 正确代码$('#fixedGrid').datagrid("reload" ...