由于内部存在错误,我不得不从自定义Tag library
覆盖标记。我在我自己的自定义类中复制粘贴了类的完整代码(不能子类,位于private
方法中的bug),我使用新的.tld
属性创建了自己的shortname
文件,在我的web.xml
文件中添加了引用。然后我使用新前缀更新了我的jsp
页面。
现在我收到以下错误:
Error failed to locate setter method for attribute class in tag class my.package.MyTableTag
它所抱怨的字段是在我的自定义类中明确定义的,所以我不明白为什么会出现这个错误。
如果需要更多信息,请提供任何帮助!
修改的
我进一步检查了一下,我认为它应该与为原始标签(和我的自定义副本)定义的tei-class
有关。但在这个课程中,我找不到任何直接引用错误类或类似内容的东西
该应用程序部署在WAS 6.1服务器上,错误堆栈跟踪以:
at com.ibm.ws.jsp.taglib.TagClassInfo.getParameterClassName(TagClassInfo.java:167)
at com.ibm.ws.jsp.translator.visitor.generator.BaseTagGenerator.evaluateAttribute(BaseTagGenerator.java:367)
at com.ibm.ws.jsp.translator.visitor.generator.BaseTagGenerator.generateSetters(BaseTagGenerator.java:256)
at com.ibm.ws.jsp.translator.visitor.generator.CustomTagGenerator.startGeneration(CustomTagGenerator.java:359)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateVisitor.startGeneration(GenerateVisitor.java:699)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateVisitor.visitCustomTagStart(GenerateVisitor.java:399)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:267)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:268)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:139)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:121)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateJspVisitor.visit(GenerateJspVisitor.java:137)
...
答案 0 :(得分:0)
使用子类而不是复制粘贴类找到另一种解决方法!