jsp自定义标签

首先写下此标签要实现的功能的类,在这里假如此标签的功能是输出hello world和属性的值:

package com.chinasoft.hxwy;


import java.io.IOException;

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

public class taglibTest extends TagSupport{    //要继承类TagSupport通过覆盖它的方法来实现
	
	private String param;
	
	public String getParam() {
		return param;
	}

	public void setParam(String param) {
		this.param = param;
	}

	@Override
	public int doStartTag() throws JspException {
		try {
			pageContext.getResponse().getWriter().print("Hello World!"+param+"</br>");
		} catch (IOException e) {
		
			e.printStackTrace();
		}
	 // return SKIP_BODY;               //跳过开始和结束标签之间的代码。
	   return EVAL_BODY_INCLUDE;        //将body的内容输出到存在的输出流中,包括是jsp代码,也可以被输出
	}
	


}

 

 

 

然后在WEB-INF下建立tld格式的文件,如lpm.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.2</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>lpm</shortname>           <!-- 使用标签时的前缀 -->
    <uri>/tags/lpm</uri>
    
    <tag>
        <name>mytaglib</name>            <!-- 使用时跟在前缀后的名字,组合成一个标签 -->
        <tagclass>com.chinasoft.hxwy.taglibTest</tagclass>      <!-- 在这里写刚才定义好的类 -->
        <bodycontent>jsp</bodycontent>  <!--可以为empty和jsp,如果为empty,开始标签和结束标签之间如果有jsp内容就会出错  -->
        <attribute>
          <name>param</name>       <!--定义此标签可以用的属性名-->
          <required>true</required>   <!-- 表示这个属性是否可以为空,为true一定要有属性值 -->
          <rtexprvalue>true</rtexprvalue>   <!-- 表示是否可以使用JSP表达式 -->
        </attribute>
    </tag>
    
</taglib>

 然后在web.xml里面添加如下代码:

  <jsp-config>
  <taglib>
	<taglib-uri>/tags/lpm</taglib-uri>           //跟上面定义的uri值一样
	<taglib-location>/WEB-INF/lpm.tld</taglib-location>   //写文件所在的路径
  </taglib>
  </jsp-config>

 

最后在jsp界面上使用它:

  
......
<body> 
   
   <lpm:mytaglib param="welcome china!"/>
   <lpm:mytaglib param="xiamen">ffffff:<input type="text" ></lpm:mytaglib>

  </body>
.......

 开启服务运行IE就能在界面上看到如下结果:

Hello World!welcome china!
Hello World!xiamen
ffffff:

你可能感兴趣的:(jsp自定义标签)