JSF: CommandButton übergibt den Parameter nicht

Millman

Mitglied
Hey Leute,

ich hätte eine kurze Frage:

Mein CommandButton übergibt den Parater aus der URL nicht weiter, soll heißen ich bekomme immer einen leeren String.

Ich habe z.B. die URL: http://...testeseite.xhtml?parameter=51

Dann in der testseite.xhtml:
<h:commandButton value="testen" action="#{testseite.testen(param.parameter)}"/>

Jedoch bekommt die Methode testen immer einen leeren String übergeben. Wenn ich jedoch auf testseite.xhtml direkt auf den Wert zugreife, z.B. über <p>#{testseite.testen(param.parameter)}</p> übergibt er den Parameter richtig!

Was mache ich falsch bzw. wo ist mein Denkfehler? Die Parameterübergabe ansich scheint ja zu funktionieren.
 
Hi,

wird die Methode beim Aufruf über den CommandButton denn überhaupt ausgeführt? Wenn ja,
dann könnte ich mir vorstellen das der Parameter an der Stelle nicht bekannt ist. Eventuell
ist der CommandButton in einem anderen Formular-Abschnitt (ich hoffe du verstehst
einigermaßen worauf ich hinauswill 😀 )
 
Ich weiß, dass es alt ist, aber auf der Suche einer Lösung habe ich den Thread gefunden und wollte ein Update geben.

Mir hat die Toplösung diesen Threads geholfen: JSF - Null values from parameters - FacesContext
bzw. der zweite Ansatz hiervon: 4 ways to pass parameter from JSF page to backing bean

Der Button sähe dann so aus:
[CODE lang="xml" title="Aktualisierter Button"]<h:commandButton value="testen" action="#{testseite.testen()}">
<f😛aram name="parameter" value="#{param.parameter}" />
</h:commandButton>[/CODE]

und in der Bean:
[CODE lang="java" title="Testseite Bean"]public void testen() {
Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String key = params.get("parameter");
// ...
}[/CODE]
 

Zurück
Oben