2012-09-23 142 views
4

對於「JSP」來說是相當新穎的;我使用Eclipse Juno與xampp(Tomcat 7.0.28)。 我已經創建瞭如下的JSP標記文件:JSP 2.0自定義標籤:無法找到setter方法?

<%@ 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 /標籤/應用程序。 但在執行文件我得到以下異常:

2012年9月23日上午07時49分十九秒org.apache.catalina.core.StandardWrapperValve調用 重度:Servlet.service()進行的servlet [JSP]在路徑[/ MedCamp]上下文中拋出異常[/index.jsp(line:11,column:1)無法找到具有根本原因的屬性:Key]的setter方法 org.apache.jasper.JasperException:/index.jsp (行:11,列:1)無法找到屬性的設置方法:鍵 在org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) at org.apache.jasper.compiler.ErrorDispatcher。派遣(ErrorDispatcher.java:408) at org.apache.jasper.compiler.ErrorDispatc her.jspError(ErrorDispatcher.java:149) at org.apache.jasper.compiler.Generator $ GenerateVisitor.evaluateAttribute(Generator.java:2865) at org.apache.jasper.compiler.Generator $ GenerateVisitor.generateSetters(Generator。您可以在org.apache.jasper.compiler.Generator $ GenerateVisitor.visit(Generator.java:1748) at org.apache.jasper.compiler.Node $ CustomTag.accept(Node.java:1539) at org.apache.jasper.compiler.Node $ Nodes.visit(Node.java:2376) at org.apache.jasper。編譯器。節點$ Visitor.visitBody(Node.java:2428) at org.apache.jasper.compiler.Node $ Visitor.visit(Node.java:2434) at org.apache.jasper.compiler.N ode $ Root.accept(Node.java:475) at org.apache.jasper.compiler.Node $ Nodes.visit(Node.java:2376) at org.apache.jasper.compiler.Generator.generate(Generator。 java:3490) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) at org.apache。 (org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java: (JspServlet.java:390)(org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 210 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at 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) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve。調用(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(Error ReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at 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(來源不明)

請讓我知道了什麼我做錯了嗎?

回答

2

傳遞給標記文件的屬性的名稱應該以小寫字母開頭。將您的Key屬性重命名爲key,您的代碼將起作用。

相關問題