JSF - Ändern Sie die Aktion für eine h: command (2,0)
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?
Lösung
Die action
kann zwei Dinge zeigen:
-
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"
oderaction="anotherpage"
am Ende -
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:
- Wir brauchen keine keine stinkin faces-config.xml - Blog von Blei Mojarra Entwickler.