我们正在转向引导页面。作为其中的一部分,我们将大多数对话框转换为按需呈现的简单包含文件。包含文件有自己的支持bean,以最大限度地减少代码重复。
典型的用例是当用户进入页面时,数据表显示事物列表。用户选择表中的一行或多行,然后单击按钮以执行操作。使用ajax重新呈现页面。数据表未显示,但前一个对话框是。然后,用户执行前一个对话框执行的任何批量操作,并单击执行(或取消)。然后重新渲染页面,显示数据表,而不显示前一个对话框。
这里的问题很简单;如何在数据表和以前的对话框中设置渲染标志?每个bean都需要设置另一个bean的render标志。我愉快地尝试将每个bean注入另一个并在运行时立即得到循环注入错误。我已经开始使用数据表bean实现的回调接口。当前一个对话框bean被注入时,数据表bean将自己设置为被回调。这有效,但我不确定这是最好的方法。作为一个老式的程序员,我考虑使用属性更改侦听器,它比简单的界面更强大,但我不确定在托管bean环境中使用它们的含义是什么。我确实检查了消息传递API,但它显然不适用于这种情况。
那么,支持同一页面互相交流的两个视图bean的最佳方式是什么?