Ich habe eine JSP, wo ich versuche, JSTL-Tags zum Anzeigen von Daten aus einer In-Memory-Instanz einer Klasse verwenden. Die Daten bestehen aus einer Reihe von Strings, wobei jeder String die Adresse eines RSS-Feeds ist.javax.el.PropertyNotFoundException: Verwenden von JSTL in JSP
in der JSP, habe ich den folgenden Code:
<table border = "1">
<tr>
<c:forEach var = "rssFeedURL" items = "${rssfom.rssFeedURLs}">
<td align = "left">${rssFeedURL}</td>
</c:forEach>
</tr>
</table>
Grundsätzlich rssfom ist eine Instanz der folgenden Klasse:
public class RSSFeedOccurrenceMiner extends RSSFeedMiner {
private HashMap<String, Counter> keywordFrequencies;
public RSS_Feed_OccurrenceMiner() {
super();
this.keywordFrequencies = new HashMap();
}
...
}
Dieses erbt von Klasse RSSFeedMiner, die die folgende Variable enthält, und methoden:
private ArrayList<String> rssFeedURLs;
public ArrayList<String> getRSSFeedURLs() {
return rssFeedURLs;
}
public void setRSSFeedURLs(ArrayList<String> rssFeedURLs) {
this.rssFeedURLs = rssFeedURLs;
}
Also in der JSP, ich dachte, ich wäre in der Lage zu uns Der Code oben, aber wenn die Seite ausgeführt wird, erhalte ich einfach eine leere Tabelle. Und in den Server-Logs, neige ich dazu, die Nachricht zu finden:
javax.el.PropertyNotFoundException: Anwesen 'rssFeedURLs' nicht auf Typ RSSFeedOccurrenceMiner gefunden
Was ist richtig meine Verwendung der Vererbung gegeben ist. Kann mir jemand sagen, ob JSTL die Vererbung zulässt oder ob etwas in meinem Code fehlt?
Ich möchte wirklich kein Scriptlet in der JSP verwenden.
Stimmt, ich habe die Methode leicht umbenannt, sehe aber in diesem Fall nicht den Fehler. –
@Mr Morgan, haben Sie die Methode umbenannt in 'getRssFeedURLs' und versuchen Sie es? –
@Vivin Palaith: Ich bin in deiner Schuld. Das Umbenennen der Methode in die Java-Konvention funktionierte perfekt. Ich habe Probleme mit JSTL gehabt, aber nie so. Danke vielmals. –