如何在UpdateModelValuesPhase之前修改JSF支持bean的值



我有一个JSF表单,它由一个网格和一些详细信息字段组成。详细信息字段包含网格中第一行的数据。我有一个支持bean,它监听网格行选择并更新细节字段的支持bean以表示新值。问题来了:我根据需要更新了细节字段(侦听器在ApplyRequestValuesPhase中被调用),但是后来JSF框架在UpdateModelValuesPhase中对它们重新赋值旧值。

我的问题是如何解决它?如何将网格选择更改事件中的新值分配给某些JSF组件?

注意:这是非常相同的事情,在JSF组件不't更新,如果变化来自网格点击,但我现在看到的问题更清楚,我认为,这就是为什么我发布了一个新的问题。

在应用请求值阶段调用侦听器是不正常的。也许您已经将immediate="true"设置在某个地方,这将导致在应用请求值阶段执行操作。您需要确保在调用操作阶段调用侦听器,该阶段在更新模型值阶段之后运行。设置immediate="false"或者只是完全删除属性,它已经是默认行为。

根据评论,你似乎确实设置了行选择器上的immediate="true",你需要删除它。

最新更新