【问题标题】:.tld's not working after switch from weblogic to tomcat/maven从 weblogic 切换到 tomcat/maven 后.tld 不起作用
【发布时间】:2017-05-17 21:37:06
【问题描述】:

我在这里看到了一些关于此的问题,但似乎没有人有答案。我正在从 Weblogic 和 Java 6 迁移到 Tomcat 和 Java 8,除了我们拥有的几个标签库之外,一切都进行得很顺利。

这是结构:

-src
    -main
        -java
            -misckPkg
                -tags.fav
                    - FavTagSupport.java
        -webapp
            -WEB-INF
                -fav.tld
            -faVer.jsp

来自 FavTagSupport.java 的代码 sn-p

    abstract class FavTagSupport extends TagSupport {
  protected FavEnum.type vType = null;

  public FavTagSupport() {
    super();
    this.init();
  }

  public FavEnum.type getVType() {
    return this.vType;
  }

  public void setVType(FavEnum.type vType) {
    this.vType = vType;
  }

来自 fav.tld 的代码 sn-p

<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.1</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>fav</short-name>
  <uri>/WEB-INF/fav.tld</uri>

  <tag>
    <attribute>
      <name>vType</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

来自 faVer.jsp 的代码 sn-p

<%@ taglib uri="/WEB-INF/fav.tld" prefix="f" %>

错误

org.apache.jasper.JasperException: /faVer.jsp (line: 166, column: 6) Unable to find setter method for attribute: vType
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:107)
    org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:3003)
    org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3223)
    org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2404)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1901)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1536)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3646)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    miscPkg.LoggerFilter.doFilter(LoggerFilter.java:72)

编辑:我越是搞砸这个,很明显它没有找到我的 FavTagSupport 类。我将尝试移动它,但我不确定为什么会有所帮助

【问题讨论】:

    标签: java tomcat tags


    【解决方案1】:

    讨厌回答我自己的问题,但这是一个简单的大小写问题。将getVtype 更改为getvTypesetVType 更改为setvType

    一直都知道属性名应该用大写字母,但我猜tomcat的做法不同。

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 2012-09-18
      • 2010-10-19
      • 1970-01-01
      • 2021-08-25
      • 2014-07-11
      相关资源
      最近更新 更多