JSP 教程 之 JSP 自定义标签 4

简介: **JSP自定义标签允许创建用户定义的语言元素。它们转换为Servlet中的tag handler,在执行时由Web容器调用。使用SimpleTagSupport继承并重写doTag()方法可创建简单标签。标签可设置属性,如message,通过setter方法访问。TLD文件定义属性元数据,JSP页面则通过prefix和uri引用。例如,<ex:Hello message="..."/> 显示定制消息。属性可配置为必需、类型、描述及是否为JspFragment。**

JSP 教程 之 JSP 自定义标签 4

JSP 自定义标签

自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。

JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面。 JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。

你可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签。

自定义标签属性

你可以在自定义标准中设置各种属性,要接收属性,值自定义标签类必须实现setter方法, JavaBean 中的setter方法如下所示:

package com.baidu;

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

public class HelloTag extends SimpleTagSupport {

private String message;

public void setMessage(String msg) {
this.message = msg;
}

StringWriter sw = new StringWriter();

public void doTag()
throws JspException, IOException
{
if (message != null) {
/ 从属性中使用消息 /
JspWriter out = getJspContext().getOut();
out.println( message );
}
else {
/ 从内容体中使用消息 /
getJspBody().invoke(sw);
getJspContext().getOut().println(sw.toString());
}
}

}
属性的名称是"message",所以setter方法​​是的setMessage()。现在让我们在TLD文件中使用的元素添加此属性:


1.0
2.0
Example TLD with Body

Hello
com.baidu.HelloTag
scriptless

message



现在我们就可以在JSP文件中使用message属性了,如下所示:

<%@ taglib prefix="ex" uri="WEB-INF/custom.tld"%>








以上实例数据输出结果为:

This is custom tag

你还可以包含以下属性:

属性 描述
name 定义属性的名称。每个标签的是属性名称必须是唯一的。
required 指定属性是否是必须的或者可选的,如果设置为false为可选。
rtexprvalue 声明在运行表达式时,标签属性是否有效。
type 定义该属性的Java类类型 。默认指定为 String
description 描述信息
fragment 如果声明了该属性,属性值将被视为一个 JspFragment。

以下是指定相关的属性实例:

.....

attribute_name
false
java.util.Date
false

.....
如果你使用了两个属性,修改TLD文件,如下所示:

.....

attribute_name1
false
java.util.Boolean
false


attribute_name2
true
java.util.Date

.....

目录
相关文章
|
Java
JSP 教程 之 JSP 国际化 2
**JSP教程:国际化(i18n)与本地化(l10n)**涉及根据用户语言和地区展示内容。关键概念包括区域标识(如&quot;en_US&quot;),`Locale`对象用于检测语言和国家,如`getCountry()`返回地区码,`getDisplayCountry()`显示用户友好的国家名,`getLanguage()`获取语言码,`getDisplayLanguage()`显示语言名,以及`getISO3Country()`和`getISO3Language()`提供3字母缩写。这些方法帮助创建适应不同文化的网站。
154 4
|
Java
JSP 教程 之 JSP 国际化 3
**JSP教程:国际化简述** 了解i18n(国际化)和l10n(本地化),涉及根据用户语言和地区展示内容。区域用如&quot;en_US&quot;标识。`Locale`对象关键方法包括:`getCountry()`显示国家代码,`getDisplayCountry()`显示国家名称,`getLanguage()`和`getDisplayLanguage()`分别用于语言。
145 1
|
自然语言处理 Java 容器
JSP 教程 之 JSP 国际化 1
**JSP教程:国际化简述** 了解关键概念:i18n(国际化)为用户提供多语言版本,l10n(本地化)适应区域文化差异,如印度语版网站。区域标识如&quot;en_US&quot;。JSP利用request的locale属性显示相应版本。通过`request.getLocale()`获取用户区域。教程深入探讨全球化网站的实现。
160 0
|
Java
JSP 教程 之 JSP 国际化 6
**JSP教程-JSP国际化**涉及i18n(页面按访客语言显示不同版本)和l10n(适应不同地区文化)。区域如&quot;en_US&quot;代表美国英语。使用`NumberFormat`进行区域特定货币格式化,
165 4
|
Java
JSP 教程 之 JSP 国际化 7
JSP教程讲解了国际化(i18n)和本地化(l10n),涉及根据用户语言和国家显示内容。区域如&quot;en_US&quot;定义文化与语言。示例代码演示了如何用`NumberFormat`和`getLocale()`格式化区域特定的百分比,展示标题和格式化后的百分比值。
171 3
|
自然语言处理 Java
JSP 教程 之 JSP 国际化 4
JSP 国际化涉及i18n(根据不同用户语言显示内容)和l10n(适应不同地区文化)。区域标识如&quot;en_US&quot;指美国英语。设置`Content-Language`响应头(如`es`为西班牙语)和使用HTML字符实体(如`ñ`、`¡`)确保正确显示多语言内容。示例代码展示如何设置响应内容类型为西班牙语并输出带特殊字符的标题。
169 3
|
缓存 Java
JSP 教程 之 JSP 调试 10
**JSP调试技巧:**利用JDB日志记录服务跟踪问题;查看HTTP头解决客户端/服务器交互异常;浏览器查看原始页面内容排查格式错误;使用Shift-Reload/Shift-Refresh强制刷新,防止缓存影响调试。
116 3
|
Java
JSP 教程 之 JSP 国际化 5
JSP教程讲解了国际化(i18n)和本地化(l10n),涉及根据用户语言和国家展示内容。区域如&quot;en_US&quot;定义文化与语言。示例代码演示了如何利用`java.text.DateFormat`按用户区域(通过`request.getLocale()`获取)格式化日期和时间,展示本地化日期。
123 2
|
Java
JSP 教程 之 JSP 调试 9
**JSP调试涉及客户端/服务器交互的复杂性,常导致错误难以重现。使用JDB进行日志记录以追踪问题,同时检查HTTP头信息有助于诊断运行异常的JSP。了解HTTP结构能更好地分析请求和响应头。**
93 0
|
Java
JSP 教程 之 JSP 调试 8
**JSP调试技巧:借助JDB日志记录和注释辅助排查问题。利用JVM的日志框架JDB记录重要信息,通过添加和分析注释来定位消失的错误源。在240字符内概括了使用日志和注释在调试JSP时的重要性。**
84 0