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

关于自定义标签 jsp

2007-06-22 11:04 387 查看
自定义标签的使用需要四步:

第一、编写用于实现功能的.java 文件。
第二、编写该 .java 文件对应的 .tdl文件。
第三、在web.xml中添加你自定义的标签
第四、在页面的头中,引入,然后在页面中使用。

举例:以List标签为例

第一、编写用于实现功能的.java 文件。
package com.gwssi.wssl.taglib;

import java.util.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

import org.jdom.*;

public class ListTag extends BodyTagSupport {
StringBuffer results = new StringBuffer();

private String key;

public void setKey(String key) {
this.key = key;
}

public String getKey() {
return key;
}

public ListTag() {
}

public int doStartTag() throws JspException {
return EVAL_BODY_BUFFERED;
}

public int doEndTag() throws JspException {
//获得请求对象
ServletRequest request = pageContext.getRequest();
//从请求对象中获得元素对象
Element e = (Element) request.getAttribute(key);
if (e != null) {
//从元素对象中获得子对象集
String other=e.getAttributeValue("other");
List children = e.getChildren();
Iterator iterator = children.iterator();
while (iterator.hasNext()) {
Element row = (Element) iterator.next();
List attributes = row.getAttributes();
Iterator it = attributes.iterator();
results.append("<tr>");
while (it.hasNext()) {
Attribute attributename = (Attribute) it.next();
String attributevalue = attributename.getValue();
results.append("<td ");
results.append(other);
results.append(">");
results.append(attributevalue);
results.append("</td>");
}
results.append("</tr>");
}
}
try {
pageContext.getOut().println(results);
} catch (Exception ex) {
System.out.println(new Date().getTime());
ex.printStackTrace();
}

return super.doEndTag();
}

public int doAfterBody() throws JspException {
return SKIP_BODY;
}

public void release() {
bodyContent = null;

super.release();
}
}
第二、编写该 .java 文件对应的 .tdl文件。

<?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.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>saic</shortname>
<uri>http://jakarta.apache.org/struts/tags-template</uri>
<tag>
<name>list</name>
<tagclass>com.gwssi.wssl.taglib.ListTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>key</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

第三、在web.xml中添加你自定义的标签 (wssl 但实际中却没有这个……)

<taglib>
<taglib-uri>/WEB-INF/saic.tld</taglib-uri>
<taglib-location>/WEB-INF/saic.tld</taglib-location>
</taglib>

第四、在页面的头中,引入,然后在页面中使用。

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

使用:<saic:list>……</saic:list>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: