gpt4 book ai didi

jsf - 当单击commandButton时,Primefaces dataTable会多次调用方法。为什么?

转载 作者:行者123 更新时间:2023-12-03 04:18:40 24 4
gpt4 key购买 nike

<p:commandButton value="Get Name List" update="nameinfo"/>
<p:dataTable id="nameinfo" var="nam" value="#{namefinder.dofind}"></p:dataTable>
  • “namefinder”是托管 bean [ @ManagedBean(name = "namefinder")]
  • “dofind”是查找名称列表的方法,并将值作为 namefinder 类对象列表返回

    问题是:“dofind”方法被调用 7 次。

    为什么要这样做?

最佳答案

因为这就是 JSF 的工作方式,并且根据 Java Bean 原则,这是正确的。 Getter 可以根据调用者的意愿多次调用。

value p:dataTable 的属性需要 getter 方法并多次调用该方法。你无法保证 getter 会被调用多少次。相反,您不应该在 getter 方法中执行任何逻辑。

相反,请提供将由您的 p:commandButton 调用的方法并刷新那里的集合。 dofind应该是带有行列表的 JavaBean 字段,那里不应该执行任何逻辑。

关于jsf - 当单击commandButton时,Primefaces dataTable会多次调用方法。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com