JSP 2.0 自定义标签 : Unable to find setter method?

标签 jsp exception jsp-tags

对“JSP”很陌生;我正在将 Eclipse Juno 与 xampp(Tomcat 7.0.28)一起使用。
我创建了以下 jsp 标记文件:

<%@ tag language="java" pageEncoding="ISO-8859-1" body-content="empty" description="Read Property from the Application's properties file."%>  
<%@ attribute name="Key" required="true" description="Key for searching Properties File."   type="java.lang.String"%>  
<% System.out.println(Key); %>  

在 JSP 中使用相同时:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="app" tagdir="/WEB-INF/tags/app" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><app:random/></title>
</head>
<body>
    <app:getProp Key="APP.TITLE"/>
</body>
</html>

我已将标记文件放在:/WEB-INF/tags/app.js 中。
但是在执行文件时,我得到以下异常:

2012 年 9 月 23 日上午 7:49:19 org.apache.catalina.core.StandardWrapperValve 调用
严重:servlet [jsp] 的 Servlet.service() 在路径 [/MedCamp] 的上下文中引发异常 [/index.jsp(行:11,列:1)无法找到属性的 setter 方法:Key] 的根本原因
org.apache.jasper.JasperException:/index.jsp (line: 11, column: 1) 无法找到属性的 setter 方法:Key
在 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
在 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
在 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)
在 org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:2865)
在 org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3089)
在 org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomDoTag(Generator.java:2507)
在 org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1748)
在 org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
在 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:475)
在 org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
在 org.apache.jasper.compiler.Generator.generate(Generator.java:3490)
在 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250)
在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
在 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
在 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
在 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
在 org.apache.tomcat.util.net.JioEndpoint$SocketProcessor.run(JioEndpoint.java:310)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源)
在 java.lang.Thread.run(未知来源)

请让我知道我做错了什么?

最佳答案

传递给标记文件的属性名称应以小写字母开头。重命名您的 Key归因于 key并且您的代码将起作用。

关于JSP 2.0 自定义标签 : Unable to find setter method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549279/

相关文章:

android - 内存不足错误 : bitmap size exceeds VM budget (Android)

JSP 自定义标记在 Tomcat 8.0 中不起作用

java - JSP中HTML输出的问题

java - Displaytag 全局顺序正常,但同一页面上的顺序相反

jsp - 除了 web.xml 之外,我自己的个人环境配置文件。可能的?

java - 在验证码中为视障人士连接声音

python - Spyne 故障 - HTTP 返回代码

java - 如何获取在jsp中上传文件的完整路径?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - JSP 自定义标签捕获用户输入