我有一个JSF表单,它由一个网格和一些详细信息字段组成。详细信息字段包含网格中第一行的数据。我有一个支持bean,它监听网格行选择并更新细节字段的支持bean以表示新值。问题来了:我根据需要更新了细节字段(侦听器在ApplyRequestValuesPhase
中被调用),但是后来JSF框架在UpdateModelValuesPhase
中对它们重新赋值旧值。
我的问题是如何解决它?如何将网格选择更改事件中的新值分配给某些JSF组件?
注意:这是非常相同的事情,在JSF组件不't更新,如果变化来自网格点击,但我现在看到的问题更清楚,我认为,这就是为什么我发布了一个新的问题。
在应用请求值阶段调用侦听器是不正常的。也许您已经将immediate="true"
设置在某个地方,这将导致在应用请求值阶段执行操作。您需要确保在调用操作阶段调用侦听器,该阶段在更新模型值阶段之后运行。设置immediate="false"
或者只是完全删除属性,它已经是默认行为。
根据评论,你似乎确实设置了行选择器上的immediate="true"
,你需要删除它。