JSF - modèle de mise à jour en phase d'application Invoke
-
12-09-2019 - |
Question
dans mon application JSF je besoin de mettre à jour le composant ui lors de la phase d'application Invoke. Peut-il être fait? Voici le code que j'ai produit jusqu'à présent:
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);
}
});
}
Cet écouteur d'action regarde composante dataScroller et page jeux et de la valeur à 1. semblent Unfortunatelly ne pas travailler du tout, parce que rendu dataScroller a la page différente de 1.
Est-ce que je manque quelque chose?
La solution
Je suppose que votre resetDataScroller
une méthode appelée par un attribut actionListener
d'un bouton de commande / lien sur votre page?
Je ne comprends pas vraiment ce que vous essayez de faire ... Est-ce que vous avez juste besoin d'écrire ce code? :
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);
}
Si vous modifiez ces propriétés du HtmlDatascroller au cours de cette phase, ils seront utilisés par JSF au cours de la dernière phase (la phase Render Response
) pour générer votre code HTML ...