为什么ui的属性getter:在恢复视图阶段重复调用?

时间:2012-10-05 11:56:32

标签: jsf-2

  

可能重复:
  Figuring out why JSF getters are called when I don't expect them to be called

这是一个简单的测试用例,一次显示一页客户列表:

<h:form>
    <h:commandButton action="#{controller.nextPage()}" value="Next" />

    <ui:repeat value="#{controller.customerList}" var="c">
        #{c.name}<br/>
    </ui:repeat>
</h:form>

public String nextPage() {
    //...
    return null;
}

在回发期间,在恢复视图期间调用getCustomerList(),应用请求值并呈现响应阶段。只有在渲染响应阶段调用方法时才有意义。另外两个调用看起来完全是浪费,除了对数据库施加过度负载之外没有任何其他用途。在恢复视图阶段加载后,我无法缓存列表,因为必须在渲染响应阶段加载下一页的不同列表。我不希望将托管bean存储在会话中,因为这会耗尽内存。

你能否解释一下为什么JSF必须为ui调用属性getter方法:在恢复视图中重复并在当时没有调用托管bean的其他属性getter时应用请求值阶段?感谢。

0 个答案:

没有答案