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

jsp自定义标签

程序员文章站 2022-03-04 11:55:44
...

首先写下此标签要实现的功能的类,在这里假如此标签的功能是输出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自定义标签