使用richfaces 3.1.5和myfaces / jsf并注意当我调用a4j动作时,在它执行之前,它所在的整个facelet正在被重新渲染 - 我是远程调试,当我点击a4j链接时,我首先看看我的phaseListener被调用(这是有意义的),但是我也看到我的bean getter中的所有逻辑都在facelet中包含a4j动作链接触发,然后最终执行动作然后再撤销。一些getter中的逻辑是昂贵的,所以我不希望它们被不必要地调用 - 我只想要动作点击 - >调用动作 - >重新渲染区域,而不是这个动作循环点击 - >重新整理整个页面 - >调用动作 - >重新渲染现在正在发生的区域。
不知道它是否重要但是我的a4j动作没有映射到actionListener,而只是一个调用String方法返回null的动作。谢谢你的帮助。
答案 0 :(得分:0)
无法保证getter只会在JSF中调用一次。您应该在调用getter中的逻辑之前将昂贵的调用移出getter或进行检查。通常,不建议在getter中放置昂贵的逻辑(在JSF的上下文中)。