103_JavaWeb_JSTL标签库_替换JSP代码脚本

举报
alexsully 发表于 2021/07/26 17:07:08 2021/07/26
【摘要】 JSTL标签库 JSP Standard Tag Library JSP 标准标签库EL 表达式主要是为了替换jsp 中的表达式脚本标签库则是为了替换代码脚本。这样使得整个 jsp页面变得更佳简洁JSTL 由五个不同功能的标签库组成功能范围 URI 前缀备注核心标签库http://java.sun.com/jsp/jstl/corec重点   格式化http://java.sun.com/j...

JSTL标签库 JSP Standard Tag Library 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 (不使用) 


JSTL 标签使用
1 导包   taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar
2 引入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3 使用 core 核心库


i. <c:set /> (很少用)
ii. <c:if test=" ">  </c:if>
iii. <c:choose> <c:when> <c:otherwise>标签
iv. <c:forEach >

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Title</title>
    </head>
    <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"/> <br>
        保存之前:${ sessionScope.abc } <br>

        <br>

            <%-- ii.<c:if />
              if标签用来做if判断。 test属性表示判断的条件(使用EL表达式输出) --%>

        <c:if test="${1==1}">
            <h1>1等于1</h1>
        </c:if>

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

        <hr>

            <%--iii.<c:choose> <c:when> <c:otherwise>标签 作用:多路判断。跟switch ... case .... default非常接近
             choose标签开始选择判断
             when标签表示每一种判断情况   test属性表示当前这种判断情况的值
              otherwise标签表示剩下的情况
            1、标签里不能使用html注释,要使用jsp注释
            2、when标签的父标签一定要是choose标签
        --%>

            <%
                request.setAttribute("height", 170);
            %>
         <c:choose>
             <c:when test="${requestScope.height > 190}">
                 <h11>小巨人</h11>
             </c:when>

             <c:when test="${ requestScope.height > 180 }">
                 <h11>标准</h11>
             </c:when>
             <c:otherwise>
                 <h11>姐夫</h11>
             </c:otherwise>
         </c:choose>

    </body>
</html>

foreach

<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>forEach</title>
    </head>
    <body>
        <%--        1.遍历1到10,输出--%>
        <%--        begin属性设置开始的索引--%>
        <%--        end 属性设置结束的索引--%>
        <%--        var 属性表示循环的变量(也是当前正在遍历到的数据)--%>
        <%--        --%>

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

        <hr>

        <%-- 2.遍历Object数组
        for (Object item: arr)  items 表示遍历的数据源(遍历的集合) var 表示当前遍历到的数据 --%>

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

            <hr>
   <%-- 3 遍历 map--%>

            <%
                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">
            <h11>${entry.key} = ${entry.value} </h11>  <br>
        </c:forEach>

</body>
</html>

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。