JavaWeb——JSTL 的核心标签库

JavaWeb——JSTL

二、核心标签库的使用

  • 核心标签库可以划分为表达式标签、URL 相关标签、流程控制标签和循环标签。

1、表达式标签

  • 表达式标签共有 4 个,分别为:<c:out>、<c:set>、<c:remove> 和 <c:catch>。

1.1、<c:cout> 标签

  • 该标签的功能,类似于 JSP 的 <%=expression%>;该标签有两种语法格式,分别如下:
    	<c:out="expression"[escapeXml="true|false"][default="defaultValue"]/>
    	<c:out value="expression"[escapeXml="true|false"]>
    		defaultValue
    	</c:out>
    
  • value:用于指定将要输出的变量或表达式。
  • escapeXml:可选属性,用于指定是否转换特殊字符,默认值为 true;被转换的字符如下:
    字符 字符实体代码
    < <
    '
    & &
    > >
    " "
  • 使用示例:
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>JSTL 应用</title>
        <style type="text/css">
            body{
                align-items: center;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <h2>应用&lt;c:out&gt;</h2>
    escapeXml 为 true 时:
    <c:out value="水平标记线<hr>" escapeXml="true"></c:out>
    <br>
    escapeXml 为 false:
    <c:out value="水平标记线<hr>" escapeXml="false"></c:out>
    </body>
    </html>
    
  • 页面效果如下:
    在这里插入图片描述

1.2、<c:set>

  • 该标签用于在指定的page、request、session 或 application 范围中定义保存某个值的变量,或为指定的对象设置属性值。
  • 该标签的使用语法有如下:
    	<c:set var="name" value="value" [scope="范围"]/>
    	<c:set var="name"[scope="范围"]>
    		标签体
    	</c:set>
    	<c:set value="value" target="object" property="propName"/>
    	<c:set target="object" property="propName">
    		标签体
    	</c:set>
    
  • var:用于指定变量名;
  • value:用于指定变量值;
  • scope:用于指定变量的作用域,默认为 page。
  • target:用于指定存储变量值或者标签体的目标对象。
  • property:用于指定目标对象储存数据的属性名。
  • 示例如下:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>&lt;c:set&gt;</title>
        <style type="text/css">
            body{
                align-items: center;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <ul>
        <li>定义 request 范围内的变量 agentname
        <c:set var="agentname" value="吴雅男" scope="request"/>
        <c:out value="agentname的值:"/>${requestScope.agentname}
        </li>
        <li>
            利用Jsp:useBean 为 Info 的 str 赋值:
            <jsp:useBean id="t" class="com.lyq.JSTLFunctionSet.Info">
                <jsp:setProperty name="t" property="str" value="我在测试"/>
            </jsp:useBean>
            ${t.str}
        </li>
        <li>
            利用&lt;c:set&gt; 为 Info 的 str 赋值:
            <c:set target="${t}" property="str">trying</c:set>
            <c:out value="${t.str}"></c:out>
        </li>
        <li>
            利用&lt;c:set&gt; 为 StudentInfo 的 name 和 ID 赋值:
            <jsp:useBean id="stu" class="com.lyq.bean.StudentInfo"/>
            <c:set target="${stu}" property="name">吴雅男</c:set>
            <c:set value="201703300544" target="${stu}" property="ID"/>
            <c:out value="name 值:${stu.name}  ID: ${stu.ID}"></c:out>
        </li>
    </ul>
    </body>
    </html>
    
  • 结果如下:
    在这里插入图片描述

1.3、<c:remove>

  • <c:remove> 标签用于移除指定的 JSP 范围内的变量,使用格式如下:
    <c:remove var="name"[scope="范围“]/>
    

1.4、<c:catch>

  • 该标签用于捕获页面出现的异常,并可以将捕获的异常信息保存到指定的变量中,其用法格式如下:
    <c:catch [var="exception"]>
    	....
    </c:catch>
    
  • 标签首尾之间为可能出现异常的代码,总之与 Java、C/C++ 等编程语言的 try…catch 结构相似。

1.5、示例

  • <c:remove> 和 <c:catch> 的示例代码如下:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>表达式标签</title>
    </head>
    <body>
    <h2>1、&lt;c_remove&gt;</h2>
    <ul>
        <li>
            声明一个作用域在 request 范围内的变量 temp,
            <c:set var="temp" value="若道天涯有回路,漫漫黄沙掩枯骨!" scope="request"/>
            其值为:<c:out value="${temp}"/>
        </li>
        <li>
            使用 &lt;c:remove&gt; 移除变量 temp,
            <c:remove var="temp" scope="request"/>
            此时 temp 的值为:<c:out value="${temp}" default=""/>
        </li>
    </ul>
    <h2>2、&lt;c:catch&gt;</h2>
    <c:catch var="error">
        <jsp:useBean id="stu" class="com.lyq.bean.StudentInfo"/>
        <c:set target="${stu}" property="grade">85</c:set>
    </c:catch>
    <c:out value="捕获的异常信息为:${error}"/>
    </body>
    </html>
    
  • 效果如下:
    在这里插入图片描述

上一篇

下一篇

发布了146 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42896653/article/details/103444034
今日推荐