可能重复:
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时应用请求值阶段?感谢。