JSP 2.0 custom tag: cannot find setter method?

Brand new for "JSP"; I am using Eclipse Juno with xampp (Tomcat 7.0.28). I created the following jsp tag file:

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

when using this in JSP like:

 <%@ 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> 

I placed the tag file in: / WEB-INF / tags / app. But when executing the file, I get the following exception:

September 23, 2012 7:49:19 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service () for servlet [jsp] in the context of the path [/ MedCamp] threw an exception [/index.jsp(line: 11, column: 1) Could not find setter method for attribute: Key] with main reason org.apache.jasper.JasperException: /index.jsp (line: 11, column: 1) Cannot find setter method for attribute: Key at org .apache.jasper.compiler.DefaultErrorHandler.jspError (DefaultErrorHandler.java:42) at org.apache.jasper.compiler.ErrorDispatcher.dispatch (ErrorDispatcher.java:408) at org.apache.jasper.compiler.ErrorDispatcher Error .java: 149) at org.apache.jasper.compiler.Generator $ GenerateVisitor.evaluateAttribute (Generator.java:2865) at org.apache.jasper.compiler.Generator $ GenerateVisitor.generateSetters (Generator.java:3089) at org. apache .jasper.compiler.Generator $ GenerateVisitor.generateCustomDoTag (Generator.java:2507) at 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.compiler.Node $ Visitor.visitBody (Node.java: 2428 ) at org.apache.jasper.compiler.Node $ Visitor.visit (Node.java: 2434) at org.apache.jasper.compiler.Node $ 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.javaIf73) at org.apache.jasper.compiler.Compiler.compile (Compiler.java opin53) at org.apache.jasper.compiler.Compiler .compile (Compiler.javahaps40) at org.apache.jasper.JspCompilationContext.compile (J spCompilationContext.java:646) on org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.javahaps57) on org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.javahaps90) on org.apache.as .servlet.JspServlet.service (JspServlet.javahaps34) in javax.servlet.http.HttpServlet.service (HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:30 org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextVonvevonveVonveVonve StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:168) on org.apache. .valves.ErrorReportValve.invoke (ErrorReportValve.java:98) at org.apache.catalina.val ves.AccessLogValve.invoke (AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service (Coyote407 ).java at org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1001) at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.javaDP79) at org.apache.tomcat.utilndpointJI $ SocketProcessor.run (JIoEndpoint.javahaps10) in java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown source) in java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown source) in java.lang.Thread.run ( Unknown source)

Please let me know what I am doing wrong?

+4
source share
1 answer

The attribute name passed to the tag file must begin with a lowercase letter. Rename your Key attribute to Key and your code will work.

+2
source

Source: https://habr.com/ru/post/1435712/


All Articles