# PrimeFaces Arbeiten mit Menü



## GeraldVonRiva (29. Sep 2016)

Hallo,

für ein neues Projekt muss ich mich gerade mit JavaEE und speziell dem Framework PrimeFaces befassen. Ich habe mir über Templates ein Seitenlayout gebaut und ein "Stackmenü" eingebunden. Ich versuche nun schon seit einiger Zeit das Menü mit Seiten zu belegen und scheitere. Ich würde gerne ein "xhtml" Template bei Klick auf einem Menüpunkt in ein div laden. Jedoch finde ich nirgends wirklich eine richtige herangehensweise.

hier mal der Code für das Menü "xhtml"

```
<h:body>
    <ui:composition>
            <h:form>
            <p:stack icon="./resources/dock/stack.png" expanded="true">
                            <p:menuitem value="Artikel" icon="./resources/dock/home.png"  onclick="#{contentLoader.setStr_nArtikel(test)}" ajax="false"/>
                            <p:menuitem value="Verkäufe" icon="./resources/dock/music.png" url="#"/>
                        </p:stack>
            </h:form>
    </ui:composition>
</h:body>
```

und hier meine MessageBean "ContentLoader"


```
package teste;

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;


@Named(value = "contentLoader")
@SessionScoped
public class ContentLoader implements Serializable
{
    private String str_nContent = "./content/leer.xhtml";
 
    private String str_nArtikel = "";
 
 
    public String getStr_nContent()
    {
       return  this.str_nContent;
    }
 
    public void setStr_nContent(String str_nContent)
    {
       this.str_nContent = str_nContent;
    }
 
    public String getStr_nArtikel()
    {
        return "./content/Artikel.xhtml";
    }
 
     public void setStr_nArtikel(String str_nArtikel)
    {
        this.str_nContent = "./content/Artikel.xhtml";
    }
```

Der Code ist reiner Testcode und die Verbindung zwischen dem Menü mit dem MessageBean ist mir auch noch etwas unklar.

Hätte jemand vllt einen Tipp?

Grüße

Gerald


----------



## stg (29. Sep 2016)

`onclick` entspricht dem HTML onclick event Attribut. Dies wird benutzt, um Client-seitig JavaScript Code auszuführen.
Was du suchst ist `action` oder `actionListener`
Mehr dazu z.B. hier: http://stackoverflow.com/questions/3909267/differences-between-action-and-actionlistener


----------



## GeraldVonRiva (29. Sep 2016)

Hallo Danke action hat mir schon mal weitergeholfen.


----------

