Con il pulsante si associa un action
, che è un metodo nel sottofondo di fagioli È possibile impostare params nel backing bean e leggerli quando si preme il pulsante, dal metodo legato alla action
. Il metodo di azione deve restituire un String
, che verrà letto dal gestore di navigazione per verificare se deve spostarsi su una nuova pagina, in base alla configurazione nello faces-config.xml
.
<h:form>
<h:commandButton value="Press here" action="#{myBean.action}">
<f:setPropertyActionListener target="#{myBean.propertyName1}" value="propertyValue1" />
<f:setPropertyActionListener target="#{myBean.propertyName2}" value="propertyValue2" />
</h:commandButton>
</h:form>
backing bean:
package mypackage;
public class MyBean {
// Init --------------------------------------------------------------------------------------
private String propertyName1;
private String propertyName2;
// Actions -----------------------------------------------------------------------------------
public void action() {
System.out.println("propertyName1: " + propertyName1);
System.out.println("propertyName2: " + propertyName2);
}
// Setters -----------------------------------------------------------------------------------
public void setPropertyName1(String propertyName1) {
this.propertyName1 = propertyName1;
}
public void setPropertyName2(String propertyName2) {
this.propertyName2 = propertyName2;
}
}
Questo esempio è tratto da here (blog BalusC, probabilmente lui verrà e ti dicono di controllare che link, ma io sono più veloce: P)
Ovviamente per ottenere questo il bean deve essere impostato come session scoped
. Se si vuole che sia request scoped
è possibile seguire i passaggi here