JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

在使用JSTL的同时,我想过一个问题,为什么JSTL能实现的功能,Java也能做,可能对于开发人员来说,更熟悉java语言。

经查阅资料,有人说是因为避免在Jsp语言中html和java语言混乱,导致开发效率低,页面不易维护,可读性差。一般来说,应该尽可能避免在jsp页面中嵌入Java代码,而是使用JSTL和EL表达式来实现同样的功能。

核心标签

核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

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

应用:数组、对象、LIst、Map和Date

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.uplooking.controller.Student" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="java.util.*" %>
<!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>JSTL</title>
</head>
<body>
<%
Student stu=new Student();
stu.setName("老王");
stu.setClazz(1);
pageContext.setAttribute("stu",stu);
Student stu1=new Student();
stu1.setName("老李");
stu1.setClazz(2);
pageContext.setAttribute("stu1",stu1);
Student stu2=new Student();
stu2.setName("老师");
stu2.setClazz(3);
pageContext.setAttribute("stu2",stu2);
%>
<!-- jstl -->
<!-- 判断后台传过来的数据是否为空 与if一样 -->
<c:if test="${stu1!=null }">
<h4>登陆成功${stu1.name}</h4>
</c:if> <c:if test="${stu3==null }">
<h4>登录失败,请返回<a href="index.jsp">首页</a></h4>
</c:if>
<hr><!--------------------------------List----------------------------------------!>
<%
List<Student> stus=new ArrayList();
stus.add(stu);
stus.add(stu1);
stus.add(stu2);
pageContext.setAttribute("stus", stus);
%>
<!-- items遍历需要的集合或者数组 var相当于一个临时变量-->
<c:forEach items="${stus}" var="stu">
${stu.name}&nbsp;
<c:choose>
<c:when test="${stu.clazz==1 }">
终极一班 <br>
</c:when>
<c:when test="${stu1.clazz==2 }">
牛x二班 <br>
</c:when>
<c:when test="${stu2.clazz==3 }">
活力三班 <br>
</c:when>
<c:otherwise>
厉害 <br>
</c:otherwise>
</c:choose>
</c:forEach>
<hr>
<!-- map的循环遍历 -->
<%
Map<String,Student> map=new HashMap();
map.put("10",stu);
map.put("20",stu1);
map.put("30",stu2);
pageContext.setAttribute("map", map);
%>
<!--begin代表从第几个元素开始(从0开始) varStatus自动排序(与分页有关)-->
<c:forEach items="${map}" var="stu" begin="1" varStatus="vars">
${vars.count} --- ${stu.key} --- ${stu.value.name} <br>
</c:forEach> <hr>
<!-- set标签用于设置变量值和对象属性。 -->
<c:set var="age" value="66"></c:set>
<c:if test="${age==66 }">
老年人
</c:if>
${age}
<!-- remove标签移除变量age -->
<c:remove var="age"/>
${age}
<!-- date时间转换 -->
<%pageContext.setAttribute("date",new Date()); %>
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/><br>
<%pageContext.setAttribute("stringDate","2018-09-17 13:04:18"); %>
<fmt:parseDate value="${stringDate}" pattern="yyyy-MM-dd HH:mm:ss"/><br> <!-- 百分 比转换 -->
<fmt:formatNumber type="percent" value="0.88"></fmt:formatNumber>
</body>
</html>

执行结果:

JSP 标准标签库JSTL的更多相关文章

  1. JSP 标准标签库(JSTL)

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

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

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

  3. JSP标准标签库JSTL

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

  4. jsp标准标签库——jstl

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

  5. JSP标准标签库(JSTL)--XML标签库 x

    ³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理.  XML标 ...

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

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

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

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

  8. JSP标准标签库(JSTL)--国际化标签库 fmt

    JSTL中使用fmt.tld作为格式化标签库的定义文件 No. 功能分类 标签名称 描述 1 国际化标签 <fmt:setLocale> 设置一个全局的地区代码 2 <fmt:req ...

  9. JSP标准标签库(JSTL)--函数标签库 fn

    和String的方法类似,就是对String的一种封装. No. 函数标签名称 描述 1 ${fn:contains()} 查询某字符串是否存在,区分大小写 2 ${fn:containsIgnore ...

随机推荐

  1. 小程序使用npm

    1.cmd进入小程序的目录,cd C:\Users\lenovo\WeChatProjects\SITfu 2.npm install 3.npm init 4.npm install minipro ...

  2. vuejs简单介绍特点

    官网:https://cn.vuejs.org/ vue是一个渐进式的框架, 是一个轻量级的框架, 也不算是一个框架, 他核心只关注图层, 是一个构建数据驱动的web界面,易于上手, 还便于于第三方库 ...

  3. JavaScript笔记1———js的一些常识

    一.什么是js? js是一种运行于解释器中的解释型脚本语言. 二.js的组成部分? 1.ECMAScript-----这是js的核心 2.DOM-----让js可以对网页进行操作(例:对页面元素的增. ...

  4. css img 隐藏的边距

    因为图片存在浏览器默认的边距,正常的情况下,增加这样的属性来消除多余的边距或者多1px的情况 img { display: block; border: node; } 但是这样的话img在父元素里设 ...

  5. 关于linux系统CPU篇--->CPU使用率升高

    1.CPU使用率为单位时间内CPU使用情况的统计,以百分比的方式展示. LINUX作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运 ...

  6. 对于react-redux的理解

    一.redux与组件 React-Redux提供connect方法,用于从UI组件生成容器组件 二.react-redux的基本使用 1.引入 import {Provider} from " ...

  7. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  8. 继承 派生 super()经典类 新式类

    '''1什么是继承? 继承一种新建类的方式,在python中支持一个儿子继承多个爹 新建的类称为子类的或者派生类 父类有可以称为基类或者超类 子类会‘遗传’父类的属性 2 为什么要用继承 减少代码冗余 ...

  9. Centos7通过SSH使用密钥实现免密登录

    日常开发中,难免会有登录服务器的操作,而通过ssh方式登录无疑是比较方便的一种方式. 如果登录较频繁,使用密钥实现免密登录无疑更是方便中的方便.因此本文就简单说一说如何实现免密登录. 一.安装配置ss ...

  10. 踩坑之路---JWT验证

    使用JWT验证客户的携带的token 客户端在请求接口时,需要在request的head中携带一个token令牌 服务器拿到这个token解析获取用户资源,这里的资源是非重要的用户信息 目前我的理解, ...