JSF - modello di aggiornamento in fase di applicazione invoke
-
12-09-2019 - |
Domanda
nella mia richiesta JSF ho bisogno di aggiornare componente dell'interfaccia utente durante la fase di applicazione invoke. Può essere fatto? Ecco il codice che ho prodotto finora:
public void resetDataScroller(ActionEvent actionEvent) {
final FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getViewRoot().invokeOnComponent(ctx, "paginator_and_table:scroll_1", new ContextCallback() {
public void invokeContextCallback(FacesContext facesContext, UIComponent uiComponent) {
HtmlDatascroller htmlDatascroller = (HtmlDatascroller) uiComponent;
htmlDatascroller.setPage(1);
htmlDatascroller.setValue(1);
}
});
}
Questa action listener guarda componente dataScroller e pagina set e valore a 1. Purtroppo non sembra funzionare affatto, perché reso dataScroller ha pagina diversa da 1.
mi sto perdendo qualcosa?
Soluzione
Immagino che il vostro resetDataScroller
un metodo chiamato da un attributo actionListener
di un pulsante di comando / link nella tua pagina?
Io non capisco che cosa si sta cercando di fare ... Avete solo bisogno di scrivere questo codice? :
public void resetDataScroller(ActionEvent evt) {
final FacesContext ctx = FacesContext.getCurrentInstance();
HtmlDatascroller htmlDatascroller = (HtmlDatascroller) ctx.getViewRoot().findComponent("paginator_and_table:scroll_1");
htmlDatascroller.setPage(1);
htmlDatascroller.setValue(1);
}
Se si modificano queste proprietà del HtmlDatascroller durante questa fase, verranno utilizzati da JSF durante l'ultima fase (fase Render Response
) per generare il codice HTML ...