JSF c:foreach

X

Xenya

Gast
Hallo,
ich will ein Menü dynamisch gestalten, so dass es für die verschiedensten Seiten einsetzbar ist.

Das Menü wird in folgender Art aufgebaut:
Java:
<ul>  
       	<li><a href="#">Menü1</a></li>  
        <li><a href="#">Menü2</a></li>  
        ...
</ul>

Damit es Variabel ist werden alle Menü-Punkte in einer Bean gespeichert

Java:
class MenuPunkte
{
    ArrayList<MenuPunkt> menuItems;

    public ArrayList<MenuPunkt> getMenuItems()
}

die Menü-Punkte sehen in der Art aus
Java:
class MenuPunkt
{
    public String getHref()
    public String getDescription()
}
(alles nur beispielhaft)

jetzt wollte ich in der JSF-Seite es ungefähr so aufbauen lassen:
HTML:
<ul>
    <c:forEach var="menuItem" items="#{menuPunkte.menuItems}">
        <li><a href="#{menuItem.href}">#{menuItem.description}</a></li>
    </c:forEach>
</ul>

Leider funktioniert es nicht. Es kommt aber auch keine Fehlermeldung.
Habe im Debugger Breakpoints eingebaut und gesehen, dass er nichtm al die getMenuItems-Methode aufruft (versuchshalber habe ich auch mal getMenuItems() im el-ausdruck ausgeschrieben, ändert nichts).

Wieso funktioniert die foreach-Schleife nicht?

Alternativ könnte ich den <ul>-String auch in der Bean bauen lassen (String Methoden ohne forEach werden aufgerufen). Dann packe ich aber Teile der Oberflächen-Funktionen in die Bean, was ich nicht schön finde.

Fänds super, wenn mir wer helfen kann.

Danke
 
X

Xenya

Gast
Menupunkte ja (wenn ich für eine Testausgabe einen String Getter aufrufe geht es auch). Menupunkt (der Rückgabewert des Getters) nicht, da diese Objekte innerhalb der Bean erstellt werden.
 

kama

Top Contributor
Hi,

Hm....kannst Du denn mal ein paar Zeilen Beispiel mehr geben...wie sieht die Bean denn innen drin aus?

Gruß
Karl Heinz Marbaise
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben