JavaWeb--EL表达式&JSTL 标签库(二)

简介: JavaWeb--EL表达式&JSTL 标签库(二)

二、JSTL 标签库



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


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


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


image.png


JSTL 标签库的使用步骤

先导入jstl标签库的jar包

taglibs-standard-impl-1.2.1.jartaglibs-standard-spec-1.2.1.jar


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


<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
core 核心库使用
<c:set />
使用set标签可以往域中保存数据
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Jack
  Date: 2021/12/25
  Time: 19:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
    域对象.setAttribute( key , value);
    scope属性设置保存到哪个域
        page表示Pagecontext域
        request表示Request域
        session表示Session域
        application表示ServletContext域
    var属性   设置key是多少
    value属性 设置值
--%>
保存之前:${ requestScope.abc}<br/>
<c:set scope="request" var="abc" value="abcValue"/>
保存之后:${ requestScope.abc}<br/>
</body>
</html>


image.png

<c:if />
<c:if test="${12 == 12 }">
    <h1> 12等于12 </h1>
</c:if>
<c:if test="${12 != 12}">
    <h1> 12 不等于 12</h1>
</c:if>


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

多路判断,跟switch…case…default非常类似


<%--choose标签开始选择判断--%>
<%--when表示每一种判断的情况--%>
<%--otherwise标签表示剩下的情况--%>
<%--<c : choose> <c:when> <c :otherwise>标签使用时需要注意的点:--%>
<%--    1,标签里不能使用htmL注释,要使用jsp注释--%>
<%--    2,when标签的父标签一定要是choose标签--%>
<%
//    在域里设置一个属性
    request.setAttribute("height",178);
%>
<c:choose>
    <c:when test="${requestScope.height > 190}">
        <h2>我是彭于晏</h2>
    </c:when>
    <c:when test="${requestScope.height > 180}">
        <h2>我是吴彦祖</h2>
    </c:when>
    <c:when test="${requestScope.height > 170}">
        <h2>我是胡歌</h2>
    </c:when>
    <c:otherwise>
        <h2>你比它们都帅!</h2>
    </c:otherwise>
</c:choose>


image.png


<c:forEach />
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Jack
  Date: 2021/12/25
  Time: 22:46
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--遍历1到10的情况
        begin属性设置开始的索引
        end属性设置结束的索引
        var属性表示循环的变量
        for(int i = 1; i<10 ; i++)
    --%>
        <c:forEach begin="1" end="10" var="i">
            ${ i }
        </c:forEach>
</body>
</html>


image.png

这玩意是真的灵活


<table border="1">
    <c:forEach begin="1" end="10" var="i">
    <tr>
        <td>${ i }</td>
    </tr>
    </c:forEach>
</table>


image.png


遍历Object数组


<%
    request.setAttribute("arr",new String[]{"123456789","32432423534"});
%>
<c:forEach items="${requestScope.arr}" var="item">
    ${item}<br>
</c:forEach>


遍历map集合


<%
    Map<String, Object> map = new HashMap<>();
    map.put("key1","value1");
    map.put("key2","value2");
    map.put("key3","value3");
    request.setAttribute("map",map);
%>
<%--item是数据域中的集合--%>
<c:forEach items="${requestScope.map}" var="entry">
    <h1>${entry.key} = ${entry.value}</h1>
</c:forEach>


相关文章
|
前端开发 JavaScript
react学习(Effect)
react学习(Effect)
180 3
|
JSON 小程序 JavaScript
【微信小程序】-- 自定义组件 - 组件所在页面的生命周期 & 插槽(三十七)
【微信小程序】-- 自定义组件 - 组件所在页面的生命周期 & 插槽(三十七)
|
JavaScript
vue-element-admin 安装依赖 npm install 报错ERESOLVE unable to resolve dependency tree解决方案
vue-element-admin 安装依赖 npm install 报错ERESOLVE unable to resolve dependency tree解决方案
|
Ubuntu Linux 持续交付
在Ubuntu 16.04上安装Docker Compose的方法
在Ubuntu 16.04上安装Docker Compose的方法
352 1
蓝桥杯:最大公约数 2020省赛 例题:既约分数
蓝桥杯:最大公约数 2020省赛 例题:既约分数
189 0
|
存储 数据可视化 数据挖掘
分布式系列教程(28) -Linux环境安装Kibana
分布式系列教程(28) -Linux环境安装Kibana
316 0
|
缓存 算法 应用服务中间件
nginx 反向代理 与缓存功能
nginx 反向代理 与缓存功能
|
Shell
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
1026 1
|
SQL 分布式计算 大数据
大数据=SQL Boy,SQL Debug打破SQL Boy 的僵局
大数据=SQL Boy,SQL Debug打破SQL Boy 的僵局
264 0
|
Java
一文搞懂内部类(Java)
Java内部类包括成员内部类、静态内部类、局部内部类和匿名内部类。成员内部类能访问外部类的所有成员,可以通过外部类实例创建。静态内部类与外部类实例无关,可直接访问外部类的静态成员。局部内部类仅限方法内使用,能访问最终变量。匿名内部类无名称,常用于一次性实现接口或抽象类,需外部类成员为final。
124 1
下一篇
开通oss服务