欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSTL自定义标签

程序员文章站 2022-06-08 18:06:30
...

1、引入jstl依赖:

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

2、创建Java类继承SimpleTagSupport:

public class DateTag extends SimpleTagSupport {
	private String pattern;
	
	public String getPattern() {
		return pattern;
	}
	public void setPattern(String pattern) {
		this.pattern = pattern;
	}
	@Override
	public void doTag() throws JspException, IOException {
        /*
		 * 可以通过继承自SimpleTagSupport类提供的方法来获得pageContext
		 * pageContext提供了获得其他所有隐含对象的方法
		 */
		PageContext pc = (PageContext) getJspContext();
		JspWriter out = pc.getOut();
		out.println(new SimpleDateFormat(pattern).format(new Date()));
	}
}

3、编写标签文件:

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">
    <description>JSTL 1.1 core library</description><!-- 描述 -->
    <display-name>JSTL core</display-name><!-- 描述 -->
    <tlib-version>1.1</tlib-version><!-- 版本 -->
    <short-name>d</short-name><!-- 前缀,也叫短名称 -->
  <uri>dateTag</uri><!-- 命名空间,必须和jsp文件上的一致 -->
  <tag><!-- 标签 -->
    <description>******</description><!-- 标签描述 -->
    <name>date</name><!-- 标签名 -->
    <tag-class>tag.DateTag</tag-class><!-- 此标签对应的java类,必须全限定名 -->
    <body-content>empty</body-content><!-- 没有标签体,标签内部结束 -->
    <attribute><!-- 标签属性 -->
        <description>******</description><!-- 属性描述 -->
        <name>pattern</name><!-- 属性名 -->
        <required>true</required><!-- true表示该属性必选,false表示该属性可选 -->
        <rtexprvalue>false</rtexprvalue><!-- true表示该属性可以动态赋值(使用el表达式赋值),false表示该属性不可以动态赋值 -->
    </attribute>
  </tag>
</taglib>

4、JSP使用标签:

<%@taglib uri="dateTag" prefix="d"%>
<d:date pattern="yyyy年MM月dd日"/>