一、 http://janwer.iteye.com/blog/150217/
介绍<jsp-config>,<jsp-config> 包括 <taglib> 和 <jsp-property-group> 两个子元素。其中<taglib> 元素在JSP 1.2 时就已经存在;而<jsp-property-group> 是JSP 2.0 新增的元素。
着重介绍<jsp-property-group>
二、http://huangjiajian01.blog.163.com/blog/static/1653898542011021111519305/
介绍<taglib>在使用时的两种方式
自定义标签在jsp中应用是需要声明标签库,有下面两种方式:
1、直接指定路径
<%@ taglib prefix="mytag" uri="/WEB-INF/testcomp.tld" %>
2、间接引用
<%@ taglib prefix="tt" uri="http://testcomp.com/testcomp/core" %>
这样做需要在web.xml中增加下面的内容:
<jsp-config>
<taglib>
<taglib-uri>http://testcomp.com/testcomp/core</taglib-uri>
<taglib-location>/WEB-INF/testcomp.tld</taglib-location>
</taglib>
</jsp-config>
很明显,间接的方式更加灵活,当.tld文件改变存放位置时只需要修改web.xml,而不用去修改每个jsp页面。
三、这个是我现在做的项目里一个tld文件的示例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>bean</shortname> <uri>/WEB-INF/tld/sh.tld</uri> <tag> <name>helloworld</name> <tagclass>com.xie.common.tags.HelloWorldTag</tagclass> <bodycontent>JSP</bodycontent> <attribute> <name></name> <required></required> <rtexprvalue></rtexprvalue> </attribute> </tag> <tag> <name>testRole</name> <tagclass>com.xie.common.tags.TestRoleTag</tagclass> <bodycontent>JSP</bodycontent> <attribute> <name>role</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>formatDate</name> <tagclass>com.xie.common.tags.FormatDateTag</tagclass> <bodycontent>JSP</bodycontent> <attribute> <name>value</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>pattern</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
以及java文件
package com.xie.common.tags; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class FormatDateTag extends TagSupport { /** * */ private static final long serialVersionUID = 1L; private long value; private String pattern; public long getValue() { return value; } public void setValue(long value) { this.value = value; } public String getPattern() { return pattern; } public void setPattern(String pattern) { this.pattern = pattern; } @Override public int doStartTag() throws JspException { try { Date date = new Date(); date.setTime(value); SimpleDateFormat sdf = new SimpleDateFormat(pattern); String dateStr = sdf.format(date); JspWriter out = this.pageContext.getOut(); out.print(dateStr); }catch(Exception e) { throw new JspException(e.getMessage()); } return SKIP_BODY; } @Override public int doEndTag() throws JspException { return EVAL_PAGE; } }
浙公网安备 33010602011771号