2009-09-22 2 views
0

в моем приложении JSF мне нужно обновить компонент ui во время фазы приложения-приложения. Это можно сделать? Вот код, я уже выпустил до сих пор: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. Unfortunatelly это, кажется, не работает вообще, потому что оказывается 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-код ...

Смежные вопросы