首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

eclipse 自定义标签的有关问题 没有用过自定义标签,请各位大哥赐教,多谢

2011-12-17 
eclipse 自定义标签的问题 没有用过自定义标签,请各位大哥赐教,谢谢。开发环境 eclipse3.0+lomboz3.0.1 +jb

eclipse 自定义标签的问题 没有用过自定义标签,请各位大哥赐教,谢谢。

开发环境 eclipse3.0+lomboz3.0.1 +jboss3.2.3
我要加入自定义的标签 tag

我的jsp放在和index.jsp同一目录下就是web的根目录下
<%@ taglib uri="/myTag" prefix="myTag" %>
<%@ page contentType="text/html;charset=GB2312" %>
<html>
   <head>
  <title>一个简单的自定义标签</title>
    </head> 
    <body>
  下面是应用这个简单的自定义标签的结果:<br>
  <myTag:helloTag/>
    </body>
</html>

我的HelloTag.java
package hnkj.hello;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class HelloTag extends TagSupport {
  public HelloTag() {
  }
  public int doStartTag() throws JspTagException{
  try{
  JspWriter out=pageContext.getOut();
  out.print("标签开始了。<font color=\"red\">hello!</font>");
  }catch(Exception e) {
  System.out.println(e);
  }
  return EVAL_BODY_INCLUDE;
   
  }
  public int doEndTag() throws JspTagException{
  try {
  JspWriter out=pageContext.getOut();  
  out.print("标签结束了。");
  }
  catch (Exception e) {
  System.out.println(e);
  }
  return EVAL_PAGE;
  }
}

我的myTag.tld 放在WEB-INF下和web.xml同一目录

<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>

<tag>
    <!-- 标签库名称-->
    <short-name>myTag</short-name>
    <!-- 标签库URI-->
    <uri>/myTag</uri>
    <!-- 标签库中的标签-->
    <!-- helloTag-->
    <tag>
     <!-- 标签名称-->
     <name>HelloTag</name>
    <!-- 标签对应的处理类-->
    <tag-class>hnkj.hello.HelloTag</tag-class>
    <!-- 标签体内容,没有标签体则设为empty-->
     <body-content>empty</body-content>
       </tag>
   </taglib>

我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Williams (501) -->

<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<web-app>

 <jsp-config>
   <taglib>
  <taglib-uri>/myTag</taglib-uri>
  <taglib-location>/WEB-INF/myTag.tld</taglib-location>
  </taglib>
</jsp-config>

   
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
/////////////////////////////////////////////////////////////////////////////////////////////////////
主要的错误提示
15:38:21,439 INFO [EmbeddedTomcatService] undeploy, ctxPath=/kcgzglWeb, warUrl=file:/D:/jboss-3.2.3/server/default/tmp/deploy/tmp11094kcgzglWeb.war/


15:38:21,439 INFO [Engine] StandardHost[localhost]: Removing web application at context path /kcgzglWeb
15:38:21,479 ERROR [Engine] StandardHost[localhost]: ContainerBase.removeChild: stop: 
LifecycleException: Container StandardContext[/kcgzglWeb] has not been started

15:38:22,110 INFO [MainDeployer] Starting deployment of package: file:/D:/jboss-3.2.3/server/default/deploy/kcgzglWeb.war
15:38:23,121 INFO [EmbeddedTomcatService] deploy, ctxPath=/kcgzglWeb, warUrl=file:/D:/jboss-3.2.3/server/default/tmp/deploy/tmp11095kcgzglWeb.war/
15:38:23,992 ERROR [Digester] Parse Error at line 25 column 14: Element type "jsp-config" must be declared.
org.xml.sax.SAXParseException: Element type "jsp-config" must be declared.


15:38:24,003 ERROR [Digester] Parse Error at line 29 column 12: The content of element type "taglib" must match "(taglib-uri,taglib-location)".
org.xml.sax.SAXParseException: The content of element type "taglib" must match "(taglib-uri,taglib-location)".


15:38:24,033 ERROR [Digester] Parse Error at line 60 column 11: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".

15:38:24,093 ERROR [Digester] Parse Fatal Error at line 2 column 6: The processing instruction target matching "[xX][mM][lL]" is not allowed.
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.

15:38:24,093 ERROR [Engine] SingleSignOnContextConfig[/kcgzglWeb] Exception processing TLD at resource path /WEB-INF/myTag.tld
javax.servlet.ServletException: Exception processing TLD at resource path /WEB-INF/myTag.tld

15:38:24,093 ERROR [Engine] ----- Root Cause -----
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
等等。麻烦各位给解决一下

[解决办法]
引入标签错误,改成:
<%@ taglib uri="/WEB-INFO/myTag.tld" prefix="myTag" % > 

热点排行