当我尝试使用自定义jsp标记运行jsp页面时,我收到以下错误。
javax.servlet.ServletException:/pages/editBidForm.jsp(43,3)在使用前缀“custom”导入的标记库中未定义标记“getName” org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.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;
}*/
}
请建议我在哪里纠正。
谢谢, Aditya R
答案 0 :(得分:1)
您在taglib中定义的唯一标记(查看代码)是“hello”。你试着把它改成<name>getName</name>