JSP2-自定义标签

步骤

1.创建改标签的处理类,该类继承SimpleTagSupport、并重写doTag()方法;

2.在WEB-INF/下、或是任意子目录下建立xxx.tld文件;

3.页面引入自己建立的标签库;<%@ taglib uri="tld文件定义的URI" prefix="标签库的简写" %>

3.使用标签;


【最简单的自定义标签--Hello.World】

1.创建处理类HelloTag.java

public class HelloTag extends SimpleTagSupport {
    public void  doTag() throws IOException{
        getJspContext().getOut().write("Heool-World");
    }

}

2.在WEB-INF/下,新建tlds文件,并在其中创建hello.tld
注意:<?xml version="1.0" encoding= "GBK" ?>一定要顶头写,不可有空格!!!

<?xml version="1.0" encoding= "GBK" ?> 
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
 
       <tlib-version>1.0</tlib-version ><!--该标签库的版本,用处不大-->
       <short-name>yan</short-name><!--该标签库的简写,用处不大-->
       <uri>/com/test/tag/h</uri ><!--该标签库的uri,或是说给标签库的唯一ID,十分重要-->
     
       <tag><!--定义某个标签--开始-->
             <name>TextTag</name ><!--标签的名字-->
             <tag-class>com.test.tag.HelloTag</tag-class ><!--标签的处理类-->
             <body-content>empty</body-content ><!--标签内容-->
       </tag><!--定义某个标签--结束-->
      
</taglib>

3.页面应用

<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="GBK"%>
<%@ taglib uri="/com/test/tag/h" prefix="yan" %><!-- uri -->
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<yan:TextTag></yan:TextTag>
</body>
</html>


带参数的自定义标签

attribute标签属性一览表
属性作用备注
<name>属性的名称,如:height=‘90px’ 
<required>是否是必填属性,值为true\false 
<description>属性的描述 
<fragment>值先传递给容器(false), 直接传给标签处理方法(true) 
<rtexprvalue>指定是否支持运行时表达式 
<type>值类型 - 默认是java.lang.String 

1.在java类中定义标签属性,并设置geter、seter方法;

public class HelloTag extends SimpleTagSupport {
	private String width;
	
	public void  doTag() throws IOException{
		getJspContext().getOut().write("标签定属性:[width:"+width+"]");
	}

	public String getWidth() {
		return width;
	}

	public void setWidth(String width) {
		this.width = width;
	}
}

2.在tld文件的<tag>标签内设置子标签<attribute>;

……
<tag>
             <name>TextTag</name ><!--标签的名字-->
             <tag-class>com.test.tag.HelloTag</tag-class ><!--标签的处理类-->
             <body-content>empty</body-content ><!--标签内容-->
             
             <attribute>
             <name>width</name>
             <required>true</required>
             <fragment>true</fragment>
             </attribute>
             
       </tag>
……

3.JSP页面使用

<yan:TextTag width="123px"></yan:TextTag>

4.输出

标签定属性:[width:123px]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值