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

来源:互联网 发布:如果二战中国投降知乎 编辑:程序博客网 时间:2024/05/22 05:09
下面定义一个可以完成日期格式化显示的操作,希望用户可以输入自己的日期的格式化模板,根据此模板最终完成当前日期的显示功能;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就是一个标签操作中所需要的属性,而此属性操作时,必须要有相应的settergetter方法进行接收;·小结:标签中设置的属性依然使用反射机制调用setter方法完成;所有设置的属性都要通过TLD文件进行定义;

原创粉丝点击