4

「JSP」は初めてです。xampp(Tomcat 7.0.28)でEclipse Junoを使用しています。次の 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 に配置しました。しかし、ファイルの実行中に次の例外が発生します。

2012 年 9 月 23 日 7:49:19 AM org.apache.catalina.core.StandardWrapperValve 呼び出し SEVERE: パス [/MedCamp] のコンテキストでサーブレット [jsp] の Servlet.service() が例外 [/index.jsp (行: 11、列: 1) 属性のセッター メソッドが見つかりません: Key] 根本原因 org.apache.jasper.JasperException: /index.jsp (行: 11、列: 1) 属性のセッター メソッドが見つかりません: キー at 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) 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) 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) at org.apache.jasper.compiler.Generator.generate(Generator.java:3490) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250) ) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) で org.apache.jasper.compiler.Compiler.org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) でコンパイル (Compiler.java:353) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) で org.apache.jasper org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) の .servlet.JspServletWrapper.service(JspServletWrapper.java:357) 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( org.apache.catalina.core.StandardContextValve の org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) の ApplicationFilterChain.java:210)。org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) の invoke(StandardContextValve.java:123) 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) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(不明なソース) java.util.concurrent.ThreadPoolExecutor$Worker.run(不明なソース) で java.lang.Thread.run(不明なソース)

私が間違っていることを教えてください。

4

1 に答える 1

2

タグ ファイルに渡される属性の名前は、小文字で始める必要があります。Key属性の名前を に変更するkeyと、コードが機能します。

于 2012-09-26T19:56:30.473 に答える