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

我有一个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
异常。 如果您没有正确命名您的getter,则无法使用EL访问它们。     
如果属性名称以两个或更多后续大写字母开头,则应该像EL中那样访问它。所以,要获得吸气剂
getRSSFeedURLs()
,你需要
${rssfom.RSSFeedURLs}
。 这也是在JavaBeans Spec中指定的。   8.8推断名称的大写。      当我们使用设计模式来推断属性或事件名称时,我们需要确定哪些规则   跟随大写推断名称。如果我们从正常的中间提取名称   mixedCase样式的Java名称,默认情况下,名称将以大写字母开头。   Java程序员习惯于使用小写字母开头。   强有力的评论者输入使我们确信我们应该遵循同样的传统规则   属性和事件名称。      因此,当我们从现有Java名称的中间提取属性或事件名称时,我们   通常将第一个字符转换为小写字母。但是要支持偶尔使用所有   大写名称,我们检查名称的前两个字符是否都是大写和if   所以不管它。所以,例如,      “FooBah”成为“fooBah”   “Z”变为“z”   “网址”变为“网址”      我们提供了一个实现此转换规则的方法Introspector.decapitalize。 JSP EL(表达语言,那些
${}
事物)遵循JavaBeans规范。因此,这与JSTL(那些
<c:xxx>
标签)没有特别的关系。     
我的VO有以下代码
 public class DocumentPolicyVO {
          @JsonProperty("Id")
            private String Id;
            @JsonProperty("Id")
            public String getId() {
                return Id;
            }
     @JsonProperty("Id")
            public void setId(String Id) {
                this.Id = Id;
            }
    }
当我尝试在jsp页面中访问它时,如下所示,它给出以下错误javax.el.PropertyNotFoundException:在类型DocumentPolicyVO上找不到属性'Id'
<select name="settingsListExcludingEnvironmentList" class="selectComboboxCheck">
                                                  <c:forEach var="settingsType" items="${settingsListExcludingEnvironmentList}">
                                                      <option value="${settingsType.Id}">${settingsType.Name}</option>
                                                  </c:forEach>
                                        </select>
请任何人解释原因。     

要回复问题请先登录注册