2009-10-27 102 views
0

當我嘗試運行帶有自定義jsp標記的jsp頁面時,出現以下錯誤。Jsp自定義標記問題

javax.servlet.ServletException:/pages/editBidForm.jsp(43,3)無標籤 「的getName」 與前綴 「定製」 org.apache.struts2.dispatcher.Dispatcher.serviceAction進口標籤庫定義(分派的.java:515) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) .... ...

這是我在JSP頁面代碼(部分)。

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

      <custom:getName name="Narayana Hari"/> 

       </tr> 

而且taglib.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> 
     <tlibversion>1.0</tlibversion> 
     <jspversion>1.1</jspversion> 
     <shortname>custom</shortname> 
    <tag> 
     <name>hello</name> 
     <tagclass>com.poran.action.CustomizedTag</tagclass> 
     <bodycontent>empty</bodycontent> 
     <info>Tag having no body</info> 
     <attribute> 
     <name>name</name> 
     <required>true</required> 
     <rtexpvalue>true</rtexpvalue> 
     </attribute> 

和Java類

package com.poran.action; 

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

import java.util.*; 

public class CustomizedTag implements Tag { 
    private PageContext pageContext; 
    private Tag parent; 
    private String name; 





    public String getName() { 
    return name; 
    } 

    public void setName(String name) { 
    this.name = name; 
    } 

/* public CustomizedTag() { 
     super(); 
    } 
*/ 
    public int doStartTag() throws JspException { 
    /* try { 
     pageContext.getOut().print(getName()); 
     } catch (IOException ioe) { 
     throw new JspException("Error:"+ioe.getMessage()); 
     }*/ 
     return SKIP_BODY; 
    } 

    public int doEndTag() throws JspException { 
     return SKIP_PAGE; 
    } 
    public void release() { 
    } 

public Tag getParent() { 
    // TODO Auto-generated method stub 
    return null; 
} 

public void setPageContext(PageContext arg0) { 
    // TODO Auto-generated method stub 

} 

public void setParent(Tag arg0) { 
    // TODO Auto-generated method stub 

} 

    /* public void setPageContext(PageContext pageContext) { 
     this.pageContext = pageContext; 
    } 

    public void setParent(Tag parent) { 
     this.parent = parent; 
    } 

    public Tag getParent() { 
     return parent; 
    }*/ 

} 

請建議我在哪裏糾正。

感謝, 阿迪亞[R

回答

1

你已經在你的taglib定義的唯一標籤(在你的代碼看)是「你好」。你如何嘗試將其更改爲<name>getName</name>

+0

非常感謝。我沒有正確理解標籤。這解決了我的問題。 :) – 2009-10-27 06:53:22