JSF - обновить модель на этапе вызова приложения
В моем приложении JSF мне нужно обновить компонент пользовательского интерфейса во время фазы вызова приложения. Это можно сделать? Вот код, который я создал до сих пор:
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);
}
});
}
Слушатель этого действия ищет компонент dataScroller и устанавливает для страницы и значения значение 1. К сожалению, он, похоже, не работает вообще, потому что визуализированный dataScroller имеет страницу, отличную от 1.
Я что-то пропустил?
1 ответ
Я полагаю, что ваш resetDataScroller
метод, вызываемый actionListener
атрибут командной кнопки / ссылки на вашей странице?
Я не очень понимаю, что вы пытаетесь сделать... Вам просто нужно написать этот код?:
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);
}
Если вы измените эти свойства HtmlDatascroller на этом этапе, они будут использоваться JSF на последнем этапе (Render Response
фаза) для генерации вашего HTML-кода...