使用bean绑定后不会呈现DataScroller

时间:2012-01-09 15:53:21

标签: jsf-2 facelets tomahawk

我的目标是在新搜索后重置datascroller的第一页。 这应该通过以下声明来完成:

getTableScroller().getUIData().setFirst(index);

我的问题是,在我将数据循环器与bean绑定后,它将不会被渲染。就在我按下搜索按钮一秒钟后,它将被渲染。

豆:

public class HistoryBean {
    private HtmlDataScroller tableScroller = new HtmlDataScroller();
    // ...

的facelet:

<t:dataScroller id="scroll_1"
                for="data"
                fastStep="10"
                pageCountVar="pageCount"
                pageIndexVar="pageIndex"
                styleClass="scroller"
                paginator="true"
                paginatorMaxPages="9"
                paginatorTableClass="paginator"
                paginatorActiveColumnStyle="font-weight:bold;"
                immediate="true"
                actionListener="#{historyBean.scrollerAction}"
                binding="#{historyBean.tableScroller}"
                >

如果我删除了binding属性,它将在初始请求时呈现。我忘记了什么?

1 个答案:

答案 0 :(得分:2)

您不应该将组件绑定到范围比请求范围更广的bean。

而是直接在视图中指定first属性。

<t:dataScroller first="#{historyBean.index}" ...>