由于实际开发中我们一般不能在jsp页面上写java代码,而el表达式也做不了判断 循环之类的复杂操作,为了弥补这些缺点,所以就有了JSTL。

简介

JavaServer Pages Standard Tag Library,JSP标准标签库

从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。为此,许多Web应用厂商都定制了自身应用的标签库,然而同一功能的标签由不同的Web应用厂商制定可能是不同的,这就导致市面上出现了很多功能相同的标签,令网页制作者无从选择,为了解决这个问题,Sun公司制定了一套标准标签库(JavaServer Pages Standard Tag Library),简称JSTL。

STL虽然被称为标准标签库,而实际上这个标签库是由5个不同功能的标签库共同组成的。在JSTL1.1规范中,为这5个标签库分别指定了不同的URI以及建议使用的前缀,如下所示:

标签库 标签库的URI 前缀
Core http://java.sun.com/jsp/jstl/core c
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/functions fn

基本应用

需要先引入jstl.jar 和 standard.jar两个jar包

其次要在页面上引入标签库:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<c:out value="Hello World!"></c:out>
</body>
</html>

基本应用(以循环和格式化日期为例):

foreach遍历数组和集合:

<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Collections"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!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>
<!-- 需求: 遍历域容器中的复杂数据(数组, list, map) -->
<%
int[] arr = {111, 333, 555};
pageContext.setAttribute("arr1", arr);
%>
<c:forEach items="${arr1 }" var="e" varStatus="vs">
${vs.index } ${vs.count } ${e } <br/>
</c:forEach>
<hr/> <%
List list = new ArrayList();
Collections.addAll(list, "aaa", "ccc", "eee");
pageContext.setAttribute("list1", list);
%>
<c:forEach items="${list1 }" var="e">
${e }<br/>
</c:forEach>
<hr/> <%
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("aaa", 111);
map.put("ccc", 333);
map.put("eee.ddd.bbb", 555);
map.put("fff", 666); pageContext.setAttribute("map1", map);
%>
<c:forEach items="${map1 }" var="en">
${en.key } === ${en.value } <br/>
</c:forEach>
</body>
</html>

for循环遍历数组和集合:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!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>
<h3>使用forEach输出 1~10, 奇数为红色,偶数为蓝色</h3>
<c:forEach begin="1" end="10" step="1" var="i">
<font color="${i%2!=0?'red':'blue' }">${i }</font>
</c:forEach>
<br/>
<c:forEach begin="1" end="10" step="4" var="i" varStatus="vs">
<font color="${vs.count%2!=0?'red':'blue' }">${i }</font>
</c:forEach> <h3>使用forEach完成 1~10的和</h3>
<h4>java</h4>
<%
int sum = 0;
for(int i=1;i<=10;i++) {
sum += i;
}
out.print("java 和:" + sum);
%>
<h4>jstl + el</h4>
<c:set var="sum" value="0"></c:set>
<c:forEach begin="1" end="10" step="1" var="i">
<c:set var="sum" value="${sum + i }"></c:set>
</c:forEach>
EL 和: ${sum }
</body>
</html>

格式化日期:

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!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>
<!-- 格式化日期 -->
<%
Date date = new Date();
pageContext.setAttribute("date1", date);
%> <fmt:formatDate value="${date1 }" pattern="yyyy-MM-dd HH:mm:ss"/>
</body>
</html>

其他应用请自行百度。

java Web JSTL介绍及基本应用的更多相关文章

  1. Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html Java Web开发介绍 简介 Java很好地支持web开发,在桌面上Eclipse RC ...

  2. [Java.web]JSTL 使用

    <%@ page import="cn.itcast.domain.Person"%> <%@ page language="java" im ...

  3. Java Web JSTL实现登陆页面重定向 jstl标签

    <form action="js/loginResult.jsp" class="loginForm" id="loginForm" ...

  4. 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例

    EL应用      自定义一个标签,实现两个字符串的相加 1回顾      1.1servlet生命周期           init(ServletConfig)           service ...

  5. java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

    一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web ...

  6. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  7. java web服务器tomcat介绍【转载】

    机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...

  8. Java中常见的5种WEB服务器介绍

    这篇文章主要介绍了Java中常见的5种WEB服务器介绍,它们分别是Tomcat.Resin.JBoss.WebSphere.WebLogic,需要的朋友可以参考下 Web服务器是运行及发布Web应用的 ...

  9. java web(一):tomcat服务器的安装和简单介绍,与eclipse关联

    一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录:   存放运行tomcat服务器的相关命令. conf目 ...

随机推荐

  1. ORM 关键

    1. 老师的增删改查 1. teacher_obj.cid.add(*[1, 2, 3]) 添加(必须打散) 2. teacher_obj.cid.set([1, 2, 3]) 设置(不用打散) 2. ...

  2. Python之struct

    struct是Python中的内建模块,用来在C语言中的结构体与Python中的字符串之间进行转换,数据一般来自文件或网络 1. 功能 (1) 按照指定格式将Python数据转换为字符串(该字符串为字 ...

  3. PS基础教程:[8]蒙版使用实例

    蒙版是PS中我们最常使用的工具,使用蒙版合成图片可以制作出非常绚丽的效果,并且看上去感觉很真,下面就以一个实例为大家分享一下蒙版的基本使用. 方法 1.在PS中打开准备好的素材,这里主要介绍蒙版的使用 ...

  4. vc++ windows 创建桌面快捷方式

    创建桌面快捷方式 在windows软件开发中,软件安装过程中总是需要在桌面创建快捷方式,下面介绍一种创建桌面快捷方式的方法,具体代码如下: /* * 创建快捷方式 * szExePath[in]:要创 ...

  5. HTTP Status 500 - Error instantiating servlet class XXXX

    问题描述 web项目中请求出现错误,如下:  HTTP Status 500 - Error instantiating servlet class XXXX类  type Exception rep ...

  6. 剑指offer-第六章面试中的各项能力(二叉树的深度)

    题目:1:输入一个二叉树,求二叉树的深度.从根节点开始最长的路径. 思路:我们可以考虑用递归,求最长的路径实际上就是求根节点的左右子树中较长的一个然后再加上1. 题目2:输入一颗二叉树的根节点,判断该 ...

  7. ASP.NET的几个试题(《C#与.NET程序员面试宝典》)

    更多参考:博客园笔记 :ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应用程序和 ...

  8. Redis事件库源码分析

    由于老大在新项目中使用redis的事件库代替了libevent,我也趁着机会读了一遍redis的事件库代码,第一次读到“优美,让人愉快”的代码,加之用xmind制作的类图非常帅,所以留文纪念. Red ...

  9. 省略名词: 从 Please find the attached 说起

    为什么是attached 首先需要解释的,为什么是叫attached: When you would like a person to reference a document attached to ...

  10. Use the dkms from EPEL when install CUDA Toolkits on CentOS

    ###Use the dkms from EPEL. yum install epel-release yum install dkms # download the rpm from the NVi ...