当前位置: 首页 > 面试题库 >

javax.el.PropertyNotFoundException:在JSP中使用JSTL

黄无尘
2023-03-14
问题内容

我有一个JSP,在这里我试图使用JSTL标记显示类的内存实例中的数据。数据由一系列字符串组成,其中每个字符串都是RSS提要的地址。

在JSP中,我有以下代码:

<table border = "1">
    <tr>
        <c:forEach var = "rssFeedURL" items = "${rssfom.rssFeedURLs}">
            <td align = "left">${rssFeedURL}</td>
        </c:forEach>
    </tr>
</table>

基本上,rssfom是以下类的实例:

public class RSSFeedOccurrenceMiner extends RSSFeedMiner {

   private HashMap<String, Counter> keywordFrequencies;

   public RSS_Feed_OccurrenceMiner() {
      super();
      this.keywordFrequencies = new HashMap();
   }
   ...
}

这是从RSSFeedMiner类继承的,该类包含以下变量和方法:

private ArrayList<String> rssFeedURLs;

public ArrayList<String> getRSSFeedURLs() {
    return rssFeedURLs;
}

public void setRSSFeedURLs(ArrayList<String> rssFeedURLs) {
    this.rssFeedURLs = rssFeedURLs;
}

因此,在JSP中,我认为我可以使用上面的代码,但是当页面运行时,我只是收到一个空表。在服务器日志中,我倾向于找到消息:

javax.el.PropertyNotFoundException:在类型RSSFeedOccurrenceMiner上找不到属性’rssFeedURLs’

考虑到我对继承的使用,这是正确的。那么有人可以告诉我JSTL是否允许继承,或者我的代码中缺少某些内容?

我真的不想在JSP中使用scriptlet。


问题答案:

您的getter方法不遵循JavaBeans命名约定。它应该被命名getRssFeedURLs(即使您有首字母缩写词,也应该像普通单词一样大写)。在EL中,当您指定属性名称时,它实际上最终会调用该属性的getter。为了弄清楚吸气剂的名称,它使用您提供的属性名称中的第一个字母大写(因此rssFeedURLs将其转换为RssFeedURLs),并附加在get其前面。所以你最终得到了getRssFeedURLs。但是,您已将方法命名为getRSSFeedURLs。Java找不到该方法,因此您会遇到PropertyNotFoundException异常。

如果您没有正确命名吸气剂,则无法使用EL访问它们。



 类似资料:
  • 本文向大家介绍BootStrap在jsp中的使用,包括了BootStrap在jsp中的使用的使用技巧和注意事项,需要的朋友参考一下 下载bootstrap的js,css文件: 在jsp中的应用: 第一步: 新建一个web项目 将bootstrap下载下来的文件放入WEB-INF下面的,lib目录下,新建一个bootstrap文件: 第二步: 新建一个index.jsp文件,引入所使用的css.js

  • 问题内容: 是否可以在JSP页面上使用,然后在HTML Submit上使用在中获得相同的请求属性? 问题答案: 不能。不幸的是,Request对象仅在页面加载完成之前才可用-一旦完成,您将丢失其中的所有值,除非它们存储在某个位置。 如果要通过请求保留属性,则需要: 在表单中有一个隐藏的输入,例如。然后,它将在servlet中作为请求参数提供。 将其放在会话中(请参阅-在JSP 中,它很容易使用)

  • 本文向大家介绍如何在JSP中使用 Action?,包括了如何在JSP中使用 Action?的使用技巧和注意事项,需要的朋友参考一下 在前进的行动终止当前页面的动作和将请求转发到其他资源,如静态页面,另一个JSP页面或Java Servlet中。 以下是前进动作的语法- 下表列出了与转发操作相关的必需属性- 序号 属性和说明 1 页面 应该由另一个资源的相对URL组成,例如静态页面,另一个JSP页面

  • 但这不起作用,当我进入“loginriuscito.jsp”时,我只看到“welcome:”

  • 问题内容: 我想将sql:query换成一些Java代码,该代码用几个参数构建一个复杂的查询。当前的sql是一个简单的选择。 如何获取我的Java ResultSet(即rs = stmt.executeQuery(sql);)并使结果可在我的JSP中使用,以便可以使用此教科书JSP? 更清楚地说,我想删除上面的查询并将其替换为Java。 我应该在Java部分中设置session / page变量

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 该插件的作用是用来Java组件插入到一个JSP页面。它确定浏览器的类型,并根据需要插入<object>或<embed>标记。 如果所需的插件不存在,它将下载该插件,然后执行Java组件。Java组件可以是Applet或JavaBean。 插件操作具有几个属性,这些属性与用于格式化Ja

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 的getProperty动作用于检索一个给定的属性,并将其转换的值的字符串,并最终将其插入到输出中。 getProperty操作只有两个属性,这两个属性都是必需的。getProperty操作的语法如下: 下表列出了与getProperty操作关联的必需属性- 序号 属性和说明 1个

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 该useBean的动作是相当多才多艺。它首先使用id和scope变量搜索现有对象。如果找不到对象,则尝试创建指定的对象。 加载bean的最简单方法如下- 加载Bean类后,可以使用jsp:setProperty和jsp:getProperty操作来修改和检索Bean属性。 下表列出了