JSF - обновить модель на этапе вызова приложения - PullRequest
0 голосов
/ 22 сентября 2009

в моем приложении 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 Ответ

1 голос
/ 22 сентября 2009

Я полагаю, что ваш 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 ...

...