您的位置:首页 > Web前端 > JavaScript

jsp自定义标签(tld)

2017-09-04 11:01 375 查看
转自:http://blog.sina.com.cn/s/blog_4b5bc01101010knj.html

一、首先写一个类继承TagSupport

MyTag.java

 

public class MyTag extends TagSupport{
 public String username="";
 public int doEndTag() throws JspException {
  JspWriter out = pageContext.getOut();
  try {
   out.print("<table border=\"1\">");
   out.print("<tr>");
   out.print("<td>"+username+"");
   out.print("</td>");
   out.print("</tr>");
   out.print("</table>");
   out.flush();
   //out.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
    return TagSupport.EVAL_PAGE;//<body-content>设置不为空,则必须返回 EVAL_BODY_INCLUDE
  }
 public void setUsername(String username) { //必须有该方法
  this.username = username;
 }
 
}

二、myTag_1.tld(TlD文件
放在WEB-INF下)

<?xml
version="1.0" encoding="UTF-8"?>

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-

jsptaglibrary_1_2.dtd" >

<taglib>

 <tlib-version>tlib-version</tlib-version>

 <jsp-version>jsp-version</jsp-version>

 <short-name>myTag</short-name> <!-- 最好和下面的名字一样 -->

 <tag>

  <name>myTag</name>

  <tag-class>com.tjw.customTag.MyTag</tag-class>

  <body-content>empty</body-content> <!--empty表示为空不能加内容(即<input />),jsp表示内容为jsp,tagdependent表示内容由标签去解析-->

  <attribute>
<!--传入名配置属性-->

   <name>username</name> <!--必须和ShowTable.java中的username同名-->

   <required>true</required>

   <rtexprvalue>true</rtexprvalue> <!--可以使用EL-->

  </attribute>

 </tag>

</taglib>

三、jsp页面:

<%@
page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="mt" uri="WEB-INF/myTag_1.tld" %>

<!DOCTYPE
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

 

  <body>

    This is my JSP page. <br>

    <br>

    <mt:myTag username="hello good!" />

  </body>

</html>

四、浏览器查看源代码,显示为
  <body>

    This is my JSP page. <br>

    <br>

    <table border="1"><tr><td>hello good!</td></tr></table>

  </body>

若深入理解BodyTagSupport,可参考:http://blog.csdn.net/muzizhuben/article/details/6651195
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: