JavaWeb:JSP标准标签库
JavaWeb:JSP标准标签库
说明
什么是JSTL?
JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制的标签库的集合,用来解决像遍历map或者集合、条件测试、XML处理,甚至数据库访问和数据操作等常见的问题。
JSTL库的安装
下载地址:
• 官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
• 菜鸟教程网下载地址:jakarta-taglibs-standard-1.1.2.zip
安装:
将jakarta-taglibs-standard-1.1.2/lib/下的两个jar文件:standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下并添加至环境变量。
然后在IDEA中加入tld约束文件:
同样的操作加入其余四个tld约束文件:
区域 | URI | 前缀 |
---|---|---|
XML | http://java.sun.com/jsp/jstl/xml | x |
国际化 | http://java.sun.com/jsp/jstl/fmt | fmt |
数据库 | http://java.sun.com/jsp/jstl/sql | sql |
函数 | http://java.sun.com/jsp/jstl/functions | fn |
在JSP中使用JSTL
在JSP页面中引用JSTL库,必须在在JSP页面的开头做以下声明:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core">
- <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml">
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt">
- <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql">
- <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions">
说明:
前缀可以使任意的,但是为了更加规范,建议采用如此简写形式。
一般行为
<c:out>标签
说明:
out标签可以将一个表达式的结果打印到网页上,这个表达式可以是基于<%=?%>的传统形式,也可以是EL表达式。
演示:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core">
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>$Title$</title>
- </head>
- <body>
- <%--默认值有两种表示方式--%>
- <c:out value="${param.username}">
- 默认值
- </c:out>
- <c:out value="${param.username}" default="默认值"/>
- </body>
- </html>
<c:set>标签
说明:
set标签具有以下三个作用:
1.为String类型的命名变量设定值。
2.如果命名变量为JavaBean,那么为这个JavaBean对象的特定属性设定值。
3.如果命名变量为Map类型,那么为这个Map对象中的特定Key设定值。
演示:
1.为String类型的命名变量设定值。
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <c:set var="命名变量的名字" value="哈哈哈" scope="session"/>
- <c:set var="user" value="Tom" scope="session"/>
- <c:out value="${sessionScope.user}" default="unknow"/>
- </body>
- </html>
2.如果命名变量为JavaBean,那么为这个JavaBean对象的特定属性设定值。
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <jsp:useBean id="product" scope="session" class="domain.Product"/>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <c:set target="${product}" property="name" value="白象方便面"/>
- <c:out value="${product.name}" default="unknow"/>
- </body>
- </html>
3.如果命名变量为Map类型,那么为这个Map对象中的特定Key设定值。
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <jsp:useBean id="hashmap" class="java.util.HashMap" scope="request"/>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <c:set target="${hashmap}" property="1" value="Monday"/>
- <c:set target="${hashmap}" property="2" value="Tuesday"/>
- <c:set target="${hashmap}" property="3" value="Wednesday"/>
- <c:out value="${hashmap.get('1')}" default="unknow"/>
- </body>
- </html>
<c:remove>标签
说明:
reomve标签用于删除特定范围内的命名变量。
演示:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <jsp:useBean id="hashmap" class="java.util.HashMap" scope="request"/>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <c:set target="${hashmap}" property="1" value="Monday"/>
- <c:remove var="hashmap" scope="request"/>
- <c:out value="${hashmap.get('1')}" default="unknow"/>
- </body>
- </html>
条件行为
<c:if>标签
说明:
用于实现Java语言中的if语句的功能。
演示:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%--测试结果将保存在result变量中--%>
- <c:if test="${param.username=='Tom'}" var="result" scope="request">
- <%--如果测试成功,则会输出true--%>
- <c:out value="${result}"/>
- </c:if>
- </body>
- </html>
<c:choose>、<c:when>、<c:otherwise>
说明:
<c:choose>、<c:when>、<c:otherwise>三个标签一起连用,可以实现Java语言中的if-else语句的功能。
演示:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <c:choose>
- <c:when test="${empty param.username}">
- Noknown user
- </c:when>
- <c:when test="${param.username=='Tom'}">
- Tom
- </c:when>
- <c:otherwise>
- Other
- </c:otherwise>
- </c:choose>
- </body>
- </html>
迭代标签
<c:forEach标签>
说明:
forEach标签用于遍历集合中的对象,并且能重复执行标签主体。
演示:
1.基本用法:
- <%@ page import="java.util.List" %>
- <%@ page import="java.util.ArrayList" %>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- List books = new ArrayList();
- books.add("JavaWeb程序设计");
- books.add("Java程序设计");
- books.add("JSP程序设计");
- %>
- <c:forEach var="book" items="<%=books%>">
- ${book}
- </c:forEach>
- </body>
- </html>
2.foreach的varStatus属性
varStatus属性用于设定一个LoopTagStatus类型的命名变量,它位于NESTED范围,这个命名变量包含了从集合中取出的当前元素的状态信息。
• count 当前元素在集合中的序号,从1开始计数。
• index 当前元素在集合中的索引,从0开始计数。
• first 当前元素是否时集合中的第一个元素
• last 当前元素是否是集合中的最后一个元素
- <%@ page import="java.util.List" %>
- <%@ page import="java.util.ArrayList" %>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- List books = new ArrayList();
- books.add("JavaWeb程序设计");
- books.add("Java程序设计");
- books.add("JSP程序设计");
- %>
- <c:forEach var="book" items="<%=books%>" varStatus="status">
- ${status.count} ${status.index} ${status.first} ${status.last} ${book}<br>
- </c:forEach>
- </body>
- </html>
3.begin、end、step
begin、end、step分别指定循环的起始索引、结束索引和步长。
- <%@ page import="java.util.List" %>
- <%@ page import="java.util.ArrayList" %>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- List books = new ArrayList();
- books.add("JavaWeb程序设计");
- books.add("Java程序设计");
- books.add("JSP程序设计");
- %>
- <c:forEach var="book" items="<%=books%>" varStatus="status" begin="1" end="2" step="1">
- ${status.count} ${status.index} ${status.first} ${status.last} ${book}<br>
- </c:forEach>
- </body>
- </html>
4.可以遍历的集合
forEach可以遍历的集合包括:
• Set、List、Map、Iterator、Enumeration接口的实现类。
- <%@ page import="java.util.HashMap" %>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- HashMap hashMap = new HashMap();
- hashMap.put("one","Monday");
- hashMap.put("two","Tuesday");
- hashMap.put("three","Wednesday");
- %>
- <c:forEach var="week" items="<%=hashMap%>">
- ${week.key} ${week.value}<br>
- </c:forEach>
- </body>
- </html>
• Java数组
• 以逗号隔开的字符串
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- String names = "Tom,Mike,Juice";
- %>
- <c:forEach var="name" items="<%=names%>">
- ${name}<br>
- </c:forEach>
- </body>
- </html>
<c:forTokens>标签
说明:
forTokens标签用于遍历字符串中用特定分隔符分割的子字符串,并且能重复执行标签主体。
演示:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- <%
- String names = "Tom|Mike|Juice";
- %>
- <c:forTokens var="name" items="<%=names%>" delims="|">
- ${name}<br>
- </c:forTokens>
- </body>
- </html>
未完待续...
JavaWeb:JSP标准标签库的更多相关文章
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- JSP 标准标签库(JSTL)之最常用的JSTL标签总结
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-t ...
- jsp标准标签库
抄袭自:http://www.cnblogs.com/hongten/archive/2011/05/14/2046005.html JSP标准标签库 Pass by xkk ,and aut ...
- JSTL的全称:JSP Standard Tag Library, jsp 标准标签库
JSTL的全称:JSP Standard Tag Library, jsp 标准标签库 JSTL的作用 提供给Java web开发人员一个标准通过的标签函数库和EL来取代传统直接在页面上嵌入j ...
- JSTL(JSP Standard Tag Library ,JSP标准标签库)
JSTL标签之核心标签 JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管 ...
- JSP标准标签库(JSTL)--JSTL简介与安装
对于MVC设计模式来讲,我们一直强调,在一个JSP钟scriptlet代码越少越好,但是只靠以前的概念很难实现,因为标签的开发特别麻烦,所以为了简化标签,也为了让标签更具备一些通用性,所以一般在开发中 ...
- JSP 标准标签库JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...
- JSP标准标签库:JSTL
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能. jstl出现的目的同el一样也是要代替jsp页面中的脚本代码. ...
- JSTL(JSP标准标签库)
JSP标准标签库(JavaServer Pages Tag Library, JSTL)是一个定制JSP标签库的集合,封装了JSP应用的通用核心功能.用来解决像遍历Map或集合.条件测试.XML处理, ...
随机推荐
- PHP抓取网络数据
涉及到的知识点不多 file_get_contents:读取数据: preg_match_all:正则匹配: 和匹配之后的数据分析. 不同网页所需要抓取的数据是不同的,所以正则表达式自然也不一样,针对 ...
- request:getParameter和getAttribute区别
getParameter 是用来接受用post个get方法传递过来的参数的.getAttribute 必须先setAttribute.(1)request.getParameter() 取得是通过容器 ...
- scala 系列文章汇总
本文作为scala系列文章索引 本博客目录: case class 背后的秘密 以spark源码为参照分析模式匹配及种类 另外,本文还收录了几个作者认为比较好的博文或网站: scala 相关网址汇总 ...
- QQ宠物怀念版H5
<QQ宠物>相伴十三载 哇!明信片邮到了!!开心ヽ(○^㉨^)ノ♪ 大乐斗Ⅱ 怀念一波...
- Python数据驱动ddt
import ddtimport unittest """ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file ...
- Native VLAN打上标记
802.1Q和ISL都知道两者的区别在于前者对native vlan的流量不打标记,而后者统一都打标记. 配置成Native VLAN的Trunk端口,收到Native VLAN的帧后,不打标记直接从 ...
- splay tree旋转操作 hdu 1890
很神奇的旋转操作. 目前没看到其他数据结构能实现这个功能.平衡树不好处理区间操作,线段树很难旋转.splay tree搞这个就很简单了. 下面用的这个模板跑了700ms,好慢,估计是删除操作太费时了, ...
- Linux 进程(二):进程关系及其守护进程
进程关系 进程组 进程组是一个或多个进程的集合.通常,它们是在同一作业中结合起来的,同一进程组中的各进程接收来自同一终端的各种信号,每个进程组有一个唯一的进程组ID.每个进程组有一个组长进程,该组长进 ...
- 1674 区间的价值 V2(分治)
1674 区间的价值 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 lyk拥有一个区间. 它规定一个区间的价值为这个区间中所有数and起来的值与这个区间所有 ...
- 160823、ionic上拉/下拉更新数据
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="UTF- ...