JSF - Обновление модели на этапе вызова приложения
-
12-09-2019 - |
Вопрос
в моем приложении 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.
Я что-то упускаю?
Решение
Я представляю, что ваш 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 на последнем этапе (the Render Response
фаза) для генерации вашего HTML-кода...