一,JSP2的自定义标签
来源:互联网 发布:mac重装系统磁盘成灰色 编辑:程序博客网 时间:2024/05/18 02:23
使用自定义标签的原因
- JSP脚本非常丑陋,难以阅读
- JSP脚本和HTML代码混杂,维护成本高
- HTML页面中嵌入JSP脚本,导致美工人员难以参与开发
出于以上的原因,Web开发需要一种可在页面中使用的标签,这种标签具有和HTML标签类似的语法,但又可以完成JSP脚本的功能,这就是我们需要的自定义标签
开发自定义标签的步骤
- 开发自定义标签处理类
- 建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库可以包含多个标签
- 在JSP文件中使用自定义标签
开发自定义标签处理类
自定义标签处理类应该继承一个父类,javax.servlet.jsp.tagext.SimpleTagSupport,除此之外,JSP处理类还要有以下的要求
- 如果标签类包含属性,每个属性都有对应的getter和setter方法
- 重写doTag()方法,这个方法负责生产页面的内容
简单的自定义标签,该标签负责在页面上输出HelloWorld
package com.servlet.customerTag;import java.io.IOException;import java.util.Date;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class HelloWorldTag extends SimpleTagSupport{ @Override public void doTag() throws JspException, IOException { // TODO Auto-generated method stub super.doTag(); getJspContext().getOut().write("HelloWorld"+new Date()); }}
建立TLD文件
TLD是Tag Library Definition的缩写,即标签库定义,文件的后缀是tld,每个TLD文件对应一个标签库,一个标签库中可以包含多个标签。TLD文件称为标签库定义文件。
可以在Tomcat的安装目录中寻找到TLD文件的模板,将该文件复制到Web应用的WEB-INF/路径,或者是WEB-INF的任意子路径下,并对该文件进行修改。
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>My customer simple taglib</description> <tlib-version>1.0</tlib-version> <short-name>CustomerSimpleTag</short-name> <!-- 定义该标签库的URI,此处的jsp2-example-taglib跟tld文件名称相同 --> <uri>http://tomcat.apache.org/jsp2-example-taglib</uri> <!-- 定义第一个标签 --> <tag> <!-- 定义标签的描述信息 --> <description>HelloWorld</description> <!-- 定义标签的名称,重要的元素 --> <name>helloWorld</name> <!-- 定义标签的处理类 --> <tag-class>com.servlet.tag.HelloWorldTag</tag-class> <!-- 定义标签体为空 --> <body-content>empty</body-content> </tag></taglib>
taglib下有三个子元素
- tlib-version:指定该标签库实现的版本,作为表示的内部版本号,对程序没有太大的影响。
- short-name:标签库的默认短名。
- uri:指定该标签库的URI,相当于指定该标签库的唯一标识。JSP页面中就是根据标签库中的uri来定位标签库。
除此之外,taglib元素下可以包含多个tag元素,每个tag元素定义一个标签,tag元素下允许出现以下的子元素。
- name:该标签的名称,这个子元素很重要,JSP页面中就是根据该名称来使用此标签的。
- tag-class:标签的处理类。
body-content:指定标签体的内容,该元素的值可以有以下的几种
- tagdependent:指定标签处理类自己负责处理标签体。
- empty:只能作为空标签使用。
- scriptless:指定该标签的标签体可以是静态HTML元素、表达式语言,但是不允许出现JSP脚本。
- JSP:指定该标签的标签体可以使用JSP脚本。
dynamic-attributes:指定该标签是否支持动态属性,只有当定义动态属性标签时才会使用该子元素。
使用标签库
在JSP页面中确定指定的标签需要两点
- 标签库URI:确定使用哪个标签库
- 标签名:确定使用哪个标签
使用标签库分成以下两个步骤
- 导入标签库:使用taglib编译指令导入标签库,就是将标签库和指定前缀关联起来。
- 使用标签:在JSP页面中使用自定义标签。
在页面中使用,文件index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://tomcat.apache.org/jsp2-example-taglib" prefix="mytag"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</head><body><mytag:helloWorld/></body></html>
运行结果
0 0
- 一,JSP2的自定义标签
- JSP2的自定义标签
- JSP2的自定义标签
- JSP2的自定义标签
- jsp2的自定义标签
- jsp2的自定义标签
- JSP2的自定义标签详解
- jsp2.0自定义标签(一)
- JSP2自定义标签的简单示例
- JSP2.x自定义标签的创建
- JSP/Servlet-----10、JSP2的自定义标签
- JSP2的自定义标签(2)
- JSP2.0自定义标签
- jsp2自定义标签
- JSP2-自定义标签
- JSP2.0自定义标签
- JSP2自定义标签(一)——简单标签
- JSP2自定义标签库技术
- mysql alter table drop constraint 报错1064
- RabbitMQ学习笔记
- 2016 acm/icpc 青岛站现场赛 3道题
- 12.7 bzoj1022 [SHOI2008]小约翰的游戏John
- MP4大全
- 一,JSP2的自定义标签
- android中百度定位、城市选择列表,右侧字母展示
- LA 3695 Distant Galaxy
- esp8266读取和保存自定义参数
- PAT 1105. Spiral Matrix (螺旋输出)
- 【基础】java泛型(持续补充)
- 请将下列构造函数补充完整,使得程序的运行结果是5
- 弹出层与滚动条控件
- SQL Server 和MySql 语法和关键字的区别