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

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

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

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

核心标签

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

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

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

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ page import="com.uplooking.controller.Student" %>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  6. <%@ page import="java.util.*" %>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  11. <title>JSTL</title>
  12. </head>
  13. <body>
  14. <%
  15. Student stu=new Student();
  16. stu.setName("老王");
  17. stu.setClazz(1);
  18. pageContext.setAttribute("stu",stu);
  19. Student stu1=new Student();
  20. stu1.setName("老李");
  21. stu1.setClazz(2);
  22. pageContext.setAttribute("stu1",stu1);
  23. Student stu2=new Student();
  24. stu2.setName("老师");
  25. stu2.setClazz(3);
  26. pageContext.setAttribute("stu2",stu2);
  27. %>
  28. <!-- jstl -->
  29. <!-- 判断后台传过来的数据是否为空 与if一样 -->
  30. <c:if test="${stu1!=null }">
  31. <h4>登陆成功${stu1.name}</h4>
  32. </c:if>
  33.  
  34. <c:if test="${stu3==null }">
  35. <h4>登录失败,请返回<a href="index.jsp">首页</a></h4>
  36. </c:if>
  37. <hr><!--------------------------------List----------------------------------------!>
  38. <%
  39. List<Student> stus=new ArrayList();
  40. stus.add(stu);
  41. stus.add(stu1);
  42. stus.add(stu2);
  43. pageContext.setAttribute("stus", stus);
  44. %>
  45. <!-- items遍历需要的集合或者数组 var相当于一个临时变量-->
  46. <c:forEach items="${stus}" var="stu">
  47. ${stu.name}&nbsp;
  48. <c:choose>
  49. <c:when test="${stu.clazz==1 }">
  50. 终极一班 <br>
  51. </c:when>
  52. <c:when test="${stu1.clazz==2 }">
  53. 牛x二班 <br>
  54. </c:when>
  55. <c:when test="${stu2.clazz==3 }">
  56. 活力三班 <br>
  57. </c:when>
  58. <c:otherwise>
  59. 厉害 <br>
  60. </c:otherwise>
  61. </c:choose>
  62. </c:forEach>
  63. <hr>
  64. <!-- map的循环遍历 -->
  65. <%
  66. Map<String,Student> map=new HashMap();
  67. map.put("10",stu);
  68. map.put("20",stu1);
  69. map.put("30",stu2);
  70. pageContext.setAttribute("map", map);
  71. %>
  72. <!--begin代表从第几个元素开始(从0开始) varStatus自动排序(与分页有关)-->
  73. <c:forEach items="${map}" var="stu" begin="1" varStatus="vars">
  74. ${vars.count} --- ${stu.key} --- ${stu.value.name} <br>
  75. </c:forEach>
  76.  
  77. <hr>
  78. <!-- set标签用于设置变量值和对象属性。 -->
  79. <c:set var="age" value="66"></c:set>
  80. <c:if test="${age==66 }">
  81. 老年人
  82. </c:if>
  83. ${age}
  84. <!-- remove标签移除变量age -->
  85. <c:remove var="age"/>
  86. ${age}
  87. <!-- date时间转换 -->
  88. <%pageContext.setAttribute("date",new Date()); %>
  89. <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/><br>
  90. <%pageContext.setAttribute("stringDate","2018-09-17 13:04:18"); %>
  91. <fmt:parseDate value="${stringDate}" pattern="yyyy-MM-dd HH:mm:ss"/><br>
  92.  
  93. <!-- 百分 比转换 -->
  94. <fmt:formatNumber type="percent" value="0.88"></fmt:formatNumber>
  95. </body>
  96. </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. GO : 斐波纳契数列

    package main import "fmt" // fibonacci is a function that returns // a function that retur ...

  2. 20175208 张家华 MyOD

    一.实现目的: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.功能简介 1.Linux下的od功能是将指定文件内容以八进制.十进制.十六进 ...

  3. Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

    1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Apple ...

  4. Spring restful

    1. RESTful 不是一项技术,也不是一个标准,而是一种风格,跟servlet不在一个层面上,根本无法比较.一个基于servlet的application也是可以是符合RESTful风格的,换言之 ...

  5. spider爬虫练习

    package com.jinzhi.spider; import java.io.BufferedReader;import java.io.IOException;import java.io.I ...

  6. day09内存管理

    复习 ''' 文件处理 1.操作文件的三步骤 -- 打开文件:硬盘的空间被操作系统持有 | 文件对象被应用程序持续 -- 操作文件:读写操作 -- 释放文件:释放操作系统对硬盘空间的持有 2.基础的读 ...

  7. Oracle错误——ORA-39000:转储文件说明错误、ORA-39001:参数值无效、ORA-39088:文件名不能包含路径说明

    错误 在使用数据泵导入文件时,报错如下 Next 出错原因 在使用参数DUMPFILE指定文件名称时,不能包含路径信息,只可以使用文件名称 Next 解决办法 在使用数据泵进行数据导入导出前,必须要创 ...

  8. Python3 tkinter基础 Spinbox 可输入 能调整的 从指定范围内选择参数的控件

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. [ZOJ 4016] Mergable Stack

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4016 直接用栈爆内存,看网上大神用数组实现的,构思巧妙,学习了! ...

  10. vscode下运行matlab记录

    Linux下安装MATLAB可参照以下链接: https://blog.csdn.net/qq_31285709/article/details/82083902 在vscode 中运行.m文件. 首 ...