Jsp benutzerdefinierte Tag Fragen
Frage
Ich erhalte die folgende Fehlermeldung, wenn ich versuche, eine jsp Seite mit einem benutzerdefinierten JSP-Tag laufen zu lassen.
javax.servlet.ServletException: /pages/editBidForm.jsp(43,3) Kein Tag "getName" in Tag-Bibliothek mit dem Präfix "custom" importiert definiert org.apache.struts2.dispatcher.Dispatcher.serviceAction (Dispatcher.java:515) org.apache.struts2.dispatcher.FilterDispatcher.doFilter (FilterDispatcher.java:419) .... ...
Hier ist mein Code (Teil) in der JSP-Seite.
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="custom" %>
<tr>
<custom:getName name="Narayana Hari"/>
</tr>
Und die taglib.tld Datei
<?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>
Und die Java-Klasse
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;
}*/
}
Bitte machen Sie mir, wo zu korrigieren.
Danke, Aditya R
Lösung
Der einzige Tag, das Sie in Ihrem taglib definiert haben (in Ihrem Code suchen) ist „Hallo“. Wie über Sie versuchen, es zu ändern, um <name>getName</name>