JSTL 标签库

JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。是一个不断完善的开放源代码的 JSP 标

签库。

EL 表达式主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个 jsp 页面

变得更佳简洁。

JSTL 由五个不同功能的标签库组成。

功能范围 URI 前缀
核心 标签库-- 重点 http://java.sun.com/jsp/jstl/core c
格式化 http://java.sun.com/jsp/jstl/fmt fmt
函数 http://java.sun.com/jsp/jstl/functions fn
数据库(不使用) http://java.sun.com/jsp/jstl/sql sql
XML(不使用) http://java.sun.com/jsp/jstl/xml x

在 jsp 标签库中使用 taglib 指令引入标签库

CORE 标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
XML 标签库
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
FMT 标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
SQL 标签库
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
FUNCTIONS 标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

JSTL 标签库的使用步骤

1、先导入 jstl 标签库的 jar 包。

  • taglibs-standard-impl-1.2.5.jar

  • taglibs-standard-spec-1.2.5.jar

    下载地址https://tomcat.apache.org/download-taglibs.cgi

2、第二步,使用 taglib 指令引入标签库。

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

core 核心库使用

<c:set /> (使用很少)

作用:set 标签可以往域中保存数据

<body>
<%--
i.<c:set />
作用: set 标签可以往域中保存数据
域对象 .setAttribute(key,value);
scope 属性设置保存到哪个域
page 表示 PageContext 域(默认值)
request 表示 Request 域
session 表示 Session 域
application 表示 ServletContext 域
var 属性设置 key 是多少
value 属性设置值
--%>
保存之前:${ sessionScope.abc } <br>
<c:set scope="session" var="abc" value="abcValue"></c:set>
<%-- <c:set scope="session" var="abc" value="abcValue"/>--%>
保存之后:${ sessionScope.abc } <br>
</body>

结果:

<c:if />

if 标签用来做 if 判断。

例:

<body>
<%--
ii.<c:if />
if 标签用来做 if 判断。
test 属性表示判断的条件(使用 EL 表达式输出)
--%>
<c:if test="${ 12 == 12 }">
<h1>12 等于 12</h1>
</c:if>
<c:if test="${ 12 != 12 }">
<h1>12 不等于 12</h1>
</c:if>
</body>

结果:

<c:choose><c:when><c:otherwise>标签

作用:多路判断。跟 switch ... case .... default 非常接近

<body>
<%--
<c:choose> <c:when> <c:otherwise> 标签
作用:多路判断。跟 switch ... case .... default 非常接近
choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
<c:choose> <c:when> <c:otherwise> 标签使用时需要注意的点:
1 、标签里不能使用 html 注释,要使用 jsp 注释
2 、 when 标签的父标签一定要是 choose 标签
--%>
<%
request.setAttribute("score", 92);
%>
<c:choose>
<%-- 这是 html 注释 --%>
<c:when test="${ requestScope.score > 90 }">
<h2>优秀</h2>
</c:when>
<c:when test="${ requestScope.score > 80 }">
<h2>良好</h2>
</c:when>
<c:when test="${ requestScope.score > 60 }">
<h2>及格</h2>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${requestScope.score > 60}">
<h3>大于 60</h3>
</c:when>
<c:when test="${requestScope.score > 50}">
<h3>大于 50</h3>
</c:when>
<c:when test="${requestScope.score > 40}">
<h3>大于 40</h3>
</c:when>
<c:otherwise>
其他小于 40
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</body>

结果:

<c:forEach />

作用:遍历输出使用。

  1. 遍历 1 到 10 ,输出

    示例代码:

    <body>
    <%--1. 遍历 1 到 10 ,输出
    begin 属性设置开始的索引
    end 属性设置结束的索引
    var 属性表示循环的变量 ( 也是当前正在遍历到的数据 )
    for (int i = 1; i < 10; i++)
    --%>
    <table border="1">
    <c:forEach begin="1" end="10" var="i">
    <tr>
    <td>第${i}行</td>
    </tr>
    </c:forEach>
    </table>
    </body>

  2. 遍历 Object 数组

    示例代码:

    <body>
    <%-- 2. 遍历 Object 数组
    for (Object item: arr)
    items 表示遍历的数据源(遍历的集合)
    var 表示当前遍历到的数据
    --%>
    <%
    request.setAttribute("arr", new String[]{"18736635442","18688886666","18699998888"});
    %>
    <c:forEach items="${ requestScope.arr }" var="item">
    ${ item } <br>
    </c:forEach>
    </body>

  1. 遍历 Map 集合

    示例代码:

    <body>
    <%
    Map<String,Object> map = new HashMap<String, Object>();
    map.put("key1", "value1");
    map.put("key2", "value2");
    map.put("key3", "value3");
    // for ( Map.Entry<String,Object> entry : map.entrySet()) {
    // }
    request.setAttribute("map", map);
    %>
    <c:forEach items="${ requestScope.map }" var="entry">
    <h5>${entry.key} = ${entry.value}</h5>
    </c:forEach>
    </body>

    结果:

  2. 遍历 List 集合---list 放 中存放 Student 类 , 有属性 : 编号 , 用户名 , 密码 , 年龄 ,

    电话信息

    Student 类:

    public class Student {
    //4. 编号,用户名,密码,年龄,电话信息
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String phone;
    }

    jsp:

    <body>
    <%--4. 遍历 List 集合 ---list 中存放 Student 类,有属性:编号,用户名,密码,年龄,电话信息 --%>
    <%
    List<Student> studentList = new ArrayList<Student>();
    for (int i = 1; i <= 10; i++) {
    studentList.add(new Student(i,"username"+i ,"pass"+i,18+i,"phone"+i));
    }
    request.setAttribute("stus", studentList);
    %>
    <table>
    <tr>
    <th>编号</th>
    <th>用户名</th>
    <th>密码</th>
    <th>年龄</th>
    <th>电话</th>
    <th>操作</th>
    </tr>
    <%--
    items 表示遍历的集合
    var 表示遍历到的数据
    begin 表示遍历的开始索引值
    end 表示结束的索引值
    step 属性表示遍历的步长值
    varStatus 属性表示当前遍历到的数据的状态
    for ( int i = 1; i < 10; i+=2 )
    --%>
    <c:forEach begin="1" end="10" step="2" varStatus="status" items="${requestScope.stus}" var="stu">
    <tr>
    <td>${stu.id}</td>
    <td>${stu.username}</td>
    <td>${stu.password}</td>
    <td>${stu.age}</td>
    <td>${stu.phone}</td>
    <td>添加、删除</td>
    </tr>
    </c:forEach>
    </table>
    </body>

欢迎关注公众号:愚生浅末

如图片失效等情况请参阅头条文章:https://www.toutiao.com/article/7137198159868002857/

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

  1. 在JSP页面中导入jstl标签库

    1 在工程中引用JSTL的两个jar包和标签库描述文件. (1)在项目上右击,从弹出的快捷键菜单中选择Properties命令,在出现的项目属性对话框上,选择DeploymentAssembly. ( ...

  2. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  3. 在Intellij Idea中使用JSTL标签库

    习惯了eclipse和myeclipse开发的我们总是依赖于系统的插件,而当我想当然的以为IntelliJ IDEA 的jstl 的使用应该和myeclispe一样,当时使用起来却到处碰壁,完全找不到 ...

  4. JavaWeb基础Day17 (JSP EL表达式 jstl标签库 beanutil工具类)

    JSP jsp的实质就是指在html界面中嵌入Java代码 jsp脚本 <%  Java代码  %>  相当于写在service方法中. <%=java 变量或者表达式 %> ...

  5. JSP中利用JSTL标签对日期格式化

    数据库:Mysql 开发语言:JAVA 页面类型:JSP 对Mysql中的日期类型格式化,在JSP中,如何办呢,很多人说在JAVA后台去日期格式化,无奈了,于是找到了比较靠谱的答案 需要先引入JSTL ...

  6. JSP页面中使用JSTL标签出现无法解析问题解决办法

    今天建立一个JavaWeb工程测试JNDI数据源连接,在jsp页面中引入了JSLT标签库,代码如下: <%@ page language="java" import=&quo ...

  7. 10、jstl标签库

    一.JSTL是SUN公司制定的一个JSP标签库,由apache jakarta组织负责维护的开源项目,目的是用标签代替java代码片段.JSTL 1.0 由四个定制标记库(core.format.xm ...

  8. JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释

    笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span styl ...

  9. jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar

    spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...

  10. 在写易买网时产生的错误 JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释

    最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: org.apache.jasp ...

随机推荐

  1. mac navicat免激活版

    Navicat 12 第一步:终端执行 sudo spctl --master-disable 第二步:下载安装即可使用 https://pan.baidu.com/s/1tHq-wqAIggD0Fo ...

  2. sshd管理限制登录配置(centos7.9)

    背景情况:为了公网的主机,被无限的密码爆破,需要对主机的ssh进行安装加固 1.首先要禁用root的远程登录和修改ssh的端口 vi /etc/ssh/sshd_config# 修改端口,不适用22端 ...

  3. Libgdx游戏开发(7)——开始游戏界面实现

    原文: Libgdx游戏开发(7)--开始游戏界面实现-Stars-One的杂货小窝 上篇文章也是讲解了如何实现暂停,但实际上,上篇的做法可能不够优雅 因为暂停和游戏界面我们可以分成2个Screen对 ...

  4. iOS开发基础99-内购in_app

    今天后台支付校验模块报错,拿到凭证去苹果校验返回的结果如下: { "receipt": { "receipt_type": "Production&q ...

  5. workman和swoole区别和异同

    swoole是使用C语言实现的socket通信框架,workerman则是使用纯php实现的socket框架,二者进程模型上也存在很多的不同. 先说下swoole的进程模型,看一下以下解析图 mast ...

  6. 背景色透明度兼容IE8的写法

    本文为Echoyya.所创,转载请带上原文链接,感谢 https://www.cnblogs.com/echoyya/p/14236242.html 通常的做法 目前大多数浏览器都支持 CSS3,只需 ...

  7. Django+forms+html

    在Django中,Form类通常通过继承django.forms.Form或django.forms.ModelForm来定义.当你定义一个表单类时,通常使用Form或ModelForm类,并使用各种 ...

  8. [oeasy]python0074_设置高亮色_color_highlight_ansi_控制终端颜色

    更多颜色 回忆上次内容 上次我们搞的还是颜色 FG foreground 前景色 30-37 BG background 背景色 40-47 这些 都可以和字体样式 结合起来 难道 就这几种颜色 吗? ...

  9. Python 基于lxml.etree实现xpath查找HTML元素

    基于lxml.etree实现xpath查找HTML元素 By:授客 QQ:1033553122 #实践环境 WIN 10 Python 3.6.5 lxml-4.6.2-cp36-cp36m-win_ ...

  10. MySQL原始密码登录出现错误

    1.首先查看自己的MySQL安装目录下有没有data文件夹,和bin目录是同级的.要是有就删除,然后执行下列操作.没有就直接执行操作: 2. 以管理员身份运行 cmd.遇到个同学,可能我强调的不够明显 ...