Senden Sie eine JSF-Formular mit GET
Wie versende ich ein Formular an die gleiche Seite und verwenden Sie die GET-Parameter?
JSF-Seite Inhalt:
<f:metadata>
<f:viewParam name="item1" value="#{bean.item1}"/>
<f:viewParam name="item2" value="#{bean.item2}"/>
</f:metadata>
...
<h:form>
<h:inputText value="#{bean.item1}"/>
<h:inputText value="#{bean.item2}"/>
<h:button value="Submit" >
<f:param name="item1" value="#{bean.item1}"/>
<f:param name="item2" value="#{bean.item2}"/>
</h:button>
</h:form>
Wenn ich die Seite anfordern: Formular.jsf?item1=foo&item2=bar, Sie füllen die Textfelder, aber die form der Einreichung an sich scheint nicht zu funktionieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersetzen
<h:button>
durchEffektiv feuert ein PRG (Post-Redirect-Get), die den
<f:viewParam>
Parameter im query-string. Angemerkt sollte werden, dass die Ziel-Seite muss genau die gleichen<f:viewParam>
.Andere Lösung ist die Verwendung eines einfachen HTML -
<form>
statt<h:form>
, geben Sie die input Elemente, die einid
passend zu den parameter Namen und mit einem einfachen<input type="submit">
. Natürlich können Sie auch einfach HTML -<input type="text">
hier.Sollte man immer noch die
<f:viewParam>
auf beiden Seiten. Sie müssen nur erkennen, dass die Konvertierung/Validierung konnte nicht durchgeführt werden, in dieser form, die Sie haben, um durchgeführt werden, die über die<f:viewParam>
auf der Ziel-Seite.Siehe auch:
Könnten Sie sich auch registrieren Sie einen
NavigationHandler
behandelt, ein keyword wie "selbst" und leitet auf die aktuelle Ansicht und fügt die notwendigen Abfrageparameter.