07---jsp标签编程02(有属性的标签)

下面定义一个可以完成日期格式化显示的操作,希望用户可以输入自己的日期的格式化模板,根据此模板
	最终完成当前日期的显示功能;

		package tag.lid.demo;
		import java.text.*;
		import java.util.*;
		import javax.servlet.jsp.*;
		import javax.servlet.jsp.tagext.*;
		public class DateTag extends TagSupport{
			private String format;
			public int doStartTag() throws JspException{
				SimpleDateFormat sdf=new SimpleDateFormat(this.format);
				try{
					super.pageContext.getOut().write(sdf.format(new Date()));
					}
				catch(Exception e){
					e.printStackTrace();
					}
				return TagSupport.SKIP_BODY;
				}
				public void setFormat(String format){
					this.format=format;
					}
				public String getFormat(){
					return this.format;
					}
			}
	此时完成了标签的处理类操作,之后就需要编写*.tld文件,作为标签库的描述文件,
		定义以上的标签处理类;

定义datetag.tld文件:
	<?xml version="1.0" encoding="UTF-8"?>
	<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_1.xsd"
		version="2.1">
			<tlib-version>1.0</tlib-version>
			<short-name>firsttag</short-name>
			<tag>
				<name>date</name>	
				<tag-class>
					tag.lid.demo.DateTag
				</tag-class>		
				<body-content>empty</body-content>
				<attribute>
					<name>format</name>
					<required>true</required><!--此属性必须填写-->
					<rtexprvalue>true</rtexprvalue><!--支持表达式输出-->
				<attribute>
			</tag>
	</taglib>

在web.xml中配置此标签库的映射:
	<jsp-config>		
		<taglib>
	    		<taglib-uri>lid_date</taglib-uri>
	    		<taglib-location>/WEB-INF/datetag.tld</taglib-location>
	    	</taglib>
	</jsp-config>
下面开始在JSP文件之中使用此标签操作:
	<%@ page contentType="text/html" pageEncoding="gbk"%>
	<%@ taglib prefix="mytab" uri="lid_date"%>
	<html>
	<head><title>这是测试</title></head>
	<body>
		
		<h3><mytab:date format="yyyy-MM-dd HH:mm:ss.SSS"/></h3>
	</body>
	</html>
启动服务器;

此处的format就是一个标签操作中所需要的属性,而此属性操作时,必须要有相应的setter
	getter方法进行接收;

·小结:
	标签中设置的属性依然使用反射机制调用setter方法完成;
	所有设置的属性都要通过TLD文件进行定义;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bzuld

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

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

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

打赏作者

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

抵扣说明:

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

余额充值