打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自定义标签编写步骤

概括地说,自定义标签编写包括四个步骤:

1.编写标签处理类

2.编写标签描述tld文件

3.配置web.xml文件

4.在jsp页面中声明并调用标签

编写标签处理类

1)放在一个包中,即package **;

2)导入必要的包:import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.*等。

3)在编译标签处理类时,须将jsp-api.jar(位于tomcat的common\lib目录下)文件加入到classpath中

标签描述文件

tld文件由一系列元素组成,涉及的元素很多,其中必需的元素有:

<taglib>:根元素

<tlib-version>:标签库版本号

<uri>:标签库唯一uri的元素

<tag>:描述每个标签处理器及属性的元素

以下是<tag>标签下的元素:

<name>:与标签库名字前缀一起使用的标签名字

<tag-class>:标签处理类的名称,包括包的名字

<body-content>:描述标签处理器使用标签体的方式

<attribute>:描述相关属性信息

配置web.xml文件

作用:声明标签库引用

<taglib>

<taglib-uri>与tld文件中的uri一致</taglib-uri>

<taglib-location>tld文件的路径</taglib-location>

</taglib>

在jsp页面中声明并调用

1)<%@taglib uri=”与tld文件中的uri一致” prefix=”使用时的前缀名字”%>

2)使用格式:<前缀名字:tag名字 相关属性赋值>

程序举例(实现简单的文本框)

java程序:

package tags;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

public class Textbox extends TagSupport

{

private String lable="";

private String name="";

private String value="";

private String maxlength="20";

public void setLable(String lable){

this.lable=lable;

}

public void setName(String name){

this.name=name;

}

public void setValue(String value){

this.value=value;

}

public void setMaxlength(String maxlength){

this.maxlength=maxlength;

}

public int doStartTag(){

try{

JspWriter out=pageContext.getOut();

out.print("<label>"+lable+"</label>");

out.println("<input value='"+value+"' name='"+name+"' size='"+maxlength+"' id='textbox' >");

}catch(Exception e){

System.out.println("failed");

}

return EVAL_BODY_INCLUDE;

}

}

  tld文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    version="2.0">   
    <tlib-version>1.0</tlib-version>
    <uri>/mytag</uri>
<tag>
 <name>textbox</name>
 <tag-class>tags.Textbox</tag-class>
 <body-content>empty</body-content>
 <attribute>
  <name>lable</name>
  <required>false</required>
 </attribute>
 <attribute>
  <name>name</name>
  <required>true</required>
 </attribute>
 <attribute>
  <name>value</name>
  <required>true</required>
 </attribute>
 <attribute>
  <name>maxlength</name>
  <required>false</required>
 </attribute>
</tag>
</taglib> 

   web文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">
 <taglib>
 <taglib-uri>/mytag</taglib-uri>
 <taglib-location>/WEB-INF/tlds/tag.tld</taglib-location>
  </taglib>
</web-app>

   jsp页面

<%@page contentType="text/html;charset=gb2312"%>
<%@taglib uri="/mytag" prefix="my"%>
<html>
<head>
 <title>
  jsp自定义标签的简单使用实例
 </title>
</head>
<body>
 <my:textbox lable="用户名:" name="username" value="" /><br>
 <my:textbox lable="密  码:" name="username" value="" />
</body>
</html>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
JSP自定义标签开发入门实例
应用jstl标签时提示The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolve
[教程]自定义JSP中的Taglib标签之二带自定义属性的标签
tag jstl tld jsp标签
(转载)TLD的属性
Struts2.0配置文件(web.xml)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服