jsp - javax.el.PropertyNotFoundException : using JSTL in JSP

标签 jsp jstl el propertynotfoundexception

这个问题在这里已经有了答案:





javax.el.PropertyNotFoundException when second character of property name is a capital

(1 个回答)


去年关闭。




我有一个 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: Property 'rssFeedURLs' not found on type RSSFeedOccurrenceMiner



鉴于我使用继承,这是正确的。那么谁能告诉我 JSTL 是否允许继承,或者我的代码中是否缺少某些内容?

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

最佳答案

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

如果你没有正确命名你的 getter,你就不能用 EL 访问它们。

关于jsp - javax.el.PropertyNotFoundException : using JSTL in JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118610/

相关文章:

java - 在集群环境中跨 JSP 应用程序共享 HashMap

java - 将列表传递到 JSP

jsf - 如何访问 EL 中的枚举属性?

javascript - 将 JSF bean 值传递给 javascript 函数

java - 运行经典标签处理程序时出现问题

java - 将非字符串属性传递给自定义 JSTL 标记

java - 你如何在 jSTL 中列出 a-z 中的每个字母

jsf - 读取 bean 属性的立即与延迟评估

java - 如何将这个 &lt;input type ="text"name ="name[]"value =""/> 从html传递到jsp

java - 如何在jSTL jsp中调用方法