Frage

Neuer Chat in JSF 2.0. Auf der letzten Version Ich verstehe, dass, wenn ich ändern Regeln wollen, „was an den Client senden“ Ich muss nur die Gesichter-config.xml konfiguriert werden.

Nun, auf Version 2.0, wie kann die Aktion verwalten? Zum Beispiel, wenn ich habe dies auf einem index.xhtml

<h:commandButton id="submit" value="submit" action="response" />

und ich brauche, um eine Seite zu nennen genannt response.html (nicht xhtml) oder die Seite in /folder/response.html platziert oder Somethings sonst? Wie kann es tun? Ich weiß, JSF 2.0 ist sehr flexibel über diese Dinge (das Konzept der href Links geschlagen wird). Also ich glaube, ich dies mit anderen Methoden verwalten kann, nicht wahr?

War es hilfreich?

Lösung

Die action kann zwei Dinge zeigen:

  1. Ein Verfahren Ausdruck action="#{bean.methodname}", wo das Verfahren wie folgt aussehen:

    @ManagedBean
    @RequestScoped
    public class Bean {
        public String methodname() {
            // Do some business task here.
            return "response";
        }
    }
    

    Nach Durchführung des Verfahrens wird die Aktion effektiv den Rückgabewert des Verfahrens am Ende enthält, etwa so: action="response".

    Sie können auch das Ergebnis kontrollieren „dynamisch“ die übliche Java Art und Weise:

    public String methodname() {
        if (someCondition) {
            return "somepage";
        } else {
            return "anotherpage";
        }
    }
    

    Je nach Zustand Ergebnis, wird die Aktion wie action="somepage" oder action="anotherpage" am Ende

  2. Ein andere XHTML-Seite in den gleichen Ordnern wie die aktuelle XHTML-Seite. Sie müssen nur die Dateinamen angeben. action="response"

So oder so, es wird auf die XHTML-Seite gehen, die von outcome + ".xhtml" zusammengesetzt ist, wo outcome ist der Aktionswert (z response.xhtml, somepage.xhtml oder anotherpage.xhtml), die im selben Ordner wie die XHTML-Datei sein sollte den h:commandButton enthält.

Sie brauchen nicht zu konfigurieren alles in faces-config.xml dafür. Zuvor während JSF 1.x Alter müssten Sie <navigation-case> für diese definieren.

Siehe auch:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top