当前位置: 首页 > 知识库问答 >
问题:

JSP 2.0自定义标记:无法找到setter方法?

云英才
2023-03-14

我对“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中。但在执行文件时,我遇到以下异常:

2012年9月23日上午7:49:19组织。阿帕奇。卡特琳娜。果心StandardWrapperValve调用严重:Servlet。路径为[MedCamp]的上下文中servlet[jsp]的service()引发异常[index.jsp(第11行,第1列)无法找到具有根本原因org的属性:Key]的setter方法。阿帕奇。贾斯珀。JasperException:/index。jsp(第11行,第1列)在组织中找不到属性:Key的setter方法。阿帕奇。贾斯珀。编译器。DefaultErrorHandler。jspError(DefaultErrorHandler.java:42)位于org。阿帕奇。贾斯珀。编译器。ErrorDispatcher。调度(ErrorDispatcher.java:408)在org。阿帕奇。贾斯珀。编译器。ErrorDispatcher。jspError(ErrorDispatcher.java:149)位于org。阿帕奇。贾斯珀。编译器。发电机$GenerateVisitor。位于组织的evaluateAttribute(Generator.java:2865)。阿帕奇。贾斯珀。编译器。发电机$GenerateVisitor。org上的generateSetters(Generator.java:3089)。阿帕奇。贾斯珀。编译器。发电机$GenerateVisitor。org上的generateCustomDoTag(Generator.java:2507)。阿帕奇。贾斯珀。编译器。发电机$GenerateVisitor。访问org(Generator.java:1748)。阿帕奇。贾斯珀。编译器。节点$CustomTag。在org接受(Node.java:1539)。阿帕奇。贾斯珀。编译器。节点$节点。访问org(Node.java:2376)。阿帕奇。贾斯珀。编译器。节点$Visitor。在org上访问body(Node.java:2428)。阿帕奇。贾斯珀。编译器。节点$Visitor。访问org(Node.java:2434)。阿帕奇。贾斯珀。编译器。节点$Root。在org接受(Node.java:475)。阿帕奇。贾斯珀。编译器。节点$节点。访问org(Node.java:2376)。阿帕奇。贾斯珀。编译器。发电机在组织上生成(Generator.java:3490)。阿帕奇。贾斯珀。编译器。编译器。generateJava(Compiler.java:250)位于org。阿帕奇。贾斯珀。编译器。编译器。在org上编译(Compiler.java:373)。阿帕奇。贾斯珀。编译器。编译器。在org上编译(Compiler.java:353)。阿帕奇。贾斯珀。编译器。编译器。在org上编译(Compiler.java:340)。阿帕奇。贾斯珀。JspCompilationContext。在org上编译(JspCompilationContext.java:646)。阿帕奇。贾斯珀。servlet。JspServletWrapper。服务(JspServletWrapper.java:357)。阿帕奇。贾斯珀。servlet。JspServlet。位于org的serviceJspFile(JspServlet.java:390)。阿帕奇。贾斯珀。servlet。JspServlet。javax上的服务(JspServlet.java:334)。servlet。http。HttpServlet。服务(HttpServlet.java:722)。阿帕奇。卡特琳娜。果心应用程序过滤器链。org上的internalDoFilter(ApplicationFilterChain.java:305)。阿帕奇。卡特琳娜。果心应用程序过滤器链。doFilter(ApplicationFilterChain.java:210)位于org。阿帕奇。卡特琳娜。果心标准包装阀。在org上调用(StandardWrapperValve.java:225)。阿帕奇。卡特琳娜。果心标准连接阀。在org调用(StandardContextValve.java:123)。阿帕奇。卡特琳娜。验证器。AuthenticatorBase。在org调用(AuthenticatorBase.java:472)。阿帕奇。卡特琳娜。果心标准主阀。在org调用(StandardHostValve.java:168)。阿帕奇。卡特琳娜。阀门。错误报告阀。在组织中调用(ErrorReportValve.java:98)。阿帕奇。卡特琳娜。阀门。检修阀。在org调用(AccessLogValve.java:927)。阿帕奇。卡特琳娜。果心标准发动机阀。在组织中调用(StandardEngineValve.java:118)。阿帕奇。卡特琳娜。连接器。郊狼适配器。服务(CoyoteAdapter.java:407)。阿帕奇。郊狼。http11.AbstractHTTP11处理器。进程(AbstractHttp11Processor.java:1001)。阿帕奇。郊狼。AbstractProtocol$AbstractConnectionHandler。过程(AbstractProtocol.java:579)。阿帕奇。公猫util。网JIoEndpoint$SocketProcessor。在java上运行(JIoEndpoint.java:310)。util。同时发生的线程池执行器。java上的runWorker(未知源)。util。同时发生的ThreadPoolExecutor$Worker。在java上运行(未知源)。lang.Thread。运行(未知源)

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

共有1个答案

贺经纶
2023-03-14

传递给标记文件的属性名称应以小写字母开头。将您的键属性重命名为键,代码就会正常工作。

 类似资料:
  • 我在构建中添加自定义方法时遇到问题。gradle文件来检索git分支并提交哈希。这是我的密码: 问题出在哪里?我得到了以下错误: 我的gradle插件版本是3.5

  • 我正在使用React视图上的Highcharts。出于可访问性和搜索引擎优化的原因,我想定制标记,但我在文档中找不出如何实现。Highcharts会自动插入一个标记,如下所示: <代码> 有没有办法改变这一点,或者这是硬编码的?

  • 本章将会讨论如何在API设计中使用自定义方法。 自定义方法指的是五个标准方法之外的API方法。他们应当仅用于标准方法不易表达的功能。一般而言,API设计者应当尽可能优先考虑使用标准方法,而不是自定义方法。标准方法相对更简单,定义完善的语义,并且开发者也更加熟悉;这使标准方法更易用,并且使用者更难犯错。使用标准方法的另一个优势是API平台会有更好的支持,如计费、错误处理、日志、监控等等。 自定义方法

  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 我们可以自定义标记图标谷歌地图吗?我不想只是简单地更改图标位图(我知道怎么做),我想更改图标的方式就像我有一个xml布局(有一个imageview和一个textview),我想膨胀这个xml(像自定义信息窗口)。但我想让它成为一个标记图标,这样我就可以通过编码来设置图像和文本。注意,我不想要一个信息窗口,我希望它是一个标记