Java基础(28)JSTL标签

JSTL(JavaServer Pages Standard Tag Library)是一个标准的标签库集合,它封装了常用的核心功能,例如迭代、条件判断、国际化、SQL等,使得在JSP页面中可以避免使用Java代码,从而让页面的开发更加简洁和维护更容易。

JSTL(JavaServer Pages Standard Tag Library)提供了一套丰富的标签,旨在帮助开发者简化JSP页面的开发。JSTL被分为几个功能库,包括核心库、格式化库、SQL库和XML库。以下是一些常见的JSTL标签及其用途:

核心标签库 (Core)

  • <c:out>:用于输出数据到页面,它会自动进行HTML转义,防止XSS攻击。
  • <c:set>:用于设置变量的值。
  • <c:remove>:用于移除指定作用域中的变量。
  • <c:if>:用于条件判断。
  • <c:choose>、<c:when>、<c:otherwise>:类似于Java中的switch语句,用于多条件判断。
  • <c:forEach>:用于遍历集合或数组。
  • <c:forTokens>:用于遍历分割后的字符串。
  • <c:import>:用于在页面中导入另一个资源。
  • <c:url>:用于对URL进行重写,可以添加参数,并且可以处理URL编码。
  • <c:redirect>:用于重定向到另一个URL。

格式化标签库 (Formatting)

  • <fmt:formatNumber>:用于格式化数字,如货币、百分比等。
  • <fmt:parseNumber>:用于解析字符串为数字。
  • <fmt:formatDate>:用于格式化日期和时间。
  • <fmt:parseDate>:用于解析字符串为日期对象。
  • <fmt:setLocale>:用于设置当前区域设置。
  • <fmt:bundle>:用于加载资源绑定(ResourceBundle),通常用于国际化。

SQL标签库 (SQL)

  • <sql:setDataSource>:用于配置数据库数据源。
  • <sql:query>:用于执行SQL查询并返回结果集。
  • <sql:update>:用于执行更新数据库的操作,如INSERT、UPDATE、DELETE。
  • <sql:param>:用于向SQL语句中传递参数。
  • <sql:dateParam>:用于向SQL语句中传递日期参数。
  • <sql:transaction>:用于执行事务。

XML标签库 (XML)

  • <x:parse>:用于解析XML文档。
  • <x:set>:用于对JSTL变量或属性设置XPath表达式计算的结果。
  • <x:out>:用于输出经过处理的XML文档。
  • <x:choose>、<x:when>、<x:otherwise>:用于基于XPath表达式的条件选择。
  • <x:forEach>:用于遍历XML节点。

这些标签的使用大大简化了在JSP页面中编写Java代码的需要,使得页面更加简洁且易于维护。通过使用JSTL,开发者能够更加专注于视图的逻辑,而不是繁琐的编程细节。

使用JSTL的好处:

  1. 代码清晰:JSTL标签的使用使得页面的逻辑更清晰,因为它避免了在JSP页面中嵌入大量的Java代码。

  2. 维护简单:因为JSTL标签抽象了常用的逻辑操作,所以页面的维护变得更加简单。

  3. 重用性高:可以在不同的JSP页面中重复使用标签,降低了代码的重复编写。

  4. 易于理解:即使是不熟悉Java编程的页面设计人员也能够理解和使用JSTL标签。

  5. 支持自定义:你可以根据自己的需求创建自定义标签,进一步提升代码的复用性和清晰度。

如何自定义JSP标签:

自定义JSP标签通常包括下面几个步骤:

  1. 创建标签处理类:这个Java类必须继承javax.servlet.jsp.tagext.TagSupportjavax.servlet.jsp.tagext.SimpleTagSupport,并且覆盖相应的方法来实现自定义标签的功能。

  2. 定义标签库描述文件(TLD):TLD文件用XML格式来描述标签库的细节,例如标签的名称、标签处理类、属性等。

  3. 在JSP页面中使用标签:在JSP页面中添加标签库的声明,并使用自定义的标签。

下面通过一个简单的例子来演示这个过程:

步骤1:创建标签处理类
package com.example.tags;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;

public class HelloTag extends TagSupport {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public int doStartTag() throws JspException {
        try {
            JspWriter out = pageContext.getOut();
            out.print("Hello, " + name + "!");
        } catch (IOException e) {
            throw new JspException("Error: IOException", e);
        }
        return SKIP_BODY; // 不处理标签体内容
    }
}
步骤2:定义TLD文件

WEB-INF目录下创建一个TLD文件example-taglib.tld

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
        version="2.1">

  <tlib-version>1.0</tlib-version>
  <short-name>Example Tags</short-name>
  <uri>http://example.com/tags</uri>

  <tag>
    <name>hello</name>
    <tag-class>com.example.tags.HelloTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>name</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
</taglib>
步骤3:在JSP页面中使用标签

在JSP页面中首先要声明你的标签库,然后就可以使用自定义的标签了:

<%@ taglib prefix="ex" uri="http://example.com/tags" %>
<html>
<body>
    <ex:hello name="World"/>
</body>
</html>

在这个例子中,ex:hello标签将会输出“Hello, World!”。

自定义标签的创建和使用涉及到对JSP和Java编程的理解,但是它为开发者提供了一个强大的工具来增强JSP页面的功能和可读性。通过创建自己的标签库,开发者可以封装复杂的行为,在JSP页面中以标签的形式简单地重用这些行为。

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辞暮尔尔-烟火年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值