JSP自定义标签

2009-07-11

自定义标签文件在jsp2.0中可以通过两种方式:一种是创建tag为文件,一种是创建标签处理器,

tag文件的格式就是一段jsp标签,再次就不再赘述,自定义的标签处理器如下:

// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) fieldsfirst ansi space // Source File Name: TreeTag.java package com.intalio.bpms.web.tags; import com.intalio.bpms.console.web.Node; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.TagSupport; import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; import org.springframework.util.StringUtils; public class TreeTag extends TagSupport { private Node rootNode; private String callback; private String selectedIdExp; private String selectedId; private String nameExp; private String name; public TreeTag() { rootNode = null; selectedIdExp = null; } public int doStartTag() throws JspException { return 0; } public int doEndTag() throws JspException { } public void release() { rootNode = null; } public Object getRootNode() { return rootNode; } public void setRootNode(Object obj) { rootNode = (Node)obj; } public String getCallback() { return callback; } public void setCallback(String s) { callback = s; } public String getSelectedId() { return selectedIdExp; } public void setSelectedId(String s) { selectedIdExp = s; } public String getName() { return nameExp; } public void setName(String s) { nameExp = s; } }   

 

 这两种方式都需要为其创建标签库描述文件(tld)

?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>2.0</jsp-version> <short-name>intalio-custom</short-name> <uri>http://bpms.intalio.com/jsp/tags</uri> <tag> <name>tree</name> <tagclass>com.intalio.bpms.web.tags.TreeTag</tagclass> <bodycontent>empty</bodycontent> <attribute> <name>id</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <name>rootNode</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Object</type> </attribute> <attribute> <name>callback</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <name>selectedId</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>name</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>

tld文件一般放在WEB-INFO下面,或者放在jar包中的META-INFO下,

在jsp中引用的时候,只需要如下就可以了:

<%@ taglib prefix="intalioConsole" tagdir="/WEB-INF/tags"%>

<intalioConsole:consoleBody selectedToolbarItem="1" subMenuHeader="${subMenuHeader}">

你可能感兴趣的:(jsp,String,object,callback,library,encoding)