Javaweb自定义标签 tld版本

1.tld文件的格式


                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

 
 1.0
  
 1.2
 mytld
 http://mytags.sf.net
 这是我的自定义标签  


 
  
  wl
 
  com.core.base.util.tld.Tld_test
   
   
  jsp
 
  在web.xml中加入taglib对应文件配置
   
 
   
  message
   
  true
   
  true
 

 
 


2.定义Tag对应类

此类必须重写doStartTag以及doEndTag方法


package com.core.base.util.tld;


import java.io.IOException;


import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;


public class Tld_test extends TagSupport{
private String message;


public String getMessage() {
return message;
}


public void setMessage(String message) {
this.message = message;
}


@Override
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
System.out.println("开始tag");
return super.doStartTag();
}

@Override
public int doAfterBody() throws JspException {
// TODO Auto-generated method stub
System.out.println("执行doAfterBody()");
return super.doAfterBody();
}

@Override
public int doEndTag() throws JspException {
// TODO Auto-generated method stub

JspWriter jspWriter = pageContext.getOut();
try {
jspWriter.print("这是我的第一个tag"+message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("tag结束");
return super.doEndTag();
}


}

SKIP_BODY (0) :跳过了开始和结束标签之间的代码。
EVAL_BODY_INCLUDE(1):将body的内容输出到存在的输出流中
SKIP_PAGE(5): 忽略剩下的页面。
EVAL_PAGE隐含(6):继续执行下面的页



3.在web.xml中加入taglib对应文件配置

ervelet2.4以后tld文件不需要在web.xml中配置

  项目中用到自定义的标签文件,但是却在web.xml中没有看到相关的标签配置,原来如果web应用使用servelet2.4以上的版本就不需要在web.xml中定义了,servelet会自动加载tld文件,有两种方式使用自动加载

  1、打成jar包时,将tld文件放在META-INF文件夹下(参考standard,jar)

  2、直接将自定义tld文件放在WEB-INF下



4.在jsp中使用自定义标签
<%@ taglib uri="http://mytags.sf.net" prefix="mytag" %>

 



你可能感兴趣的:(页面前端)