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日"/>