0

我有一个带有新建、保存、删除、打印、关闭命令按钮的 JSF - xhtml 页面。

我们在输入控件上应用了一些验证,并且在删除和保存时效果很好。对于关闭按钮,我们设置了“immediate=true”来禁止验证,这也可以正常工作。

但是我们也想通知用户如果他更改了任何输入控件中的值然后选择关闭表单,“他留下了一些未保存的更改”,因为关闭按钮已设置为立即为真,它确实如果为它设置了 immediate = true,那么 valuechangeListerner 也不能识别值的变化。

想知道在这种情况下要采取的方法....

谢谢

4

1 回答 1

0

在按钮上使用 immediate="true" 时,确实会在应用请求值阶段调用该操作,并跳过所有剩余阶段。这也是该属性的唯一要点:在应用请求值阶段立即处理(解码、验证、更新和调用)组件。

无论如何,所有不具有 immediate="true" 的输入都会被忽略。只有具有 immediate="true" 的输入也会被处理,但这也发生在应用请求值阶段。如果在应用请求值阶段已经发生了一切,为什么还要调用剩余的阶段?

调试 JSF 生命周期文章中,您可以找到以下摘要,该摘要应该启发何时(不)使用即时“true”

请参考Trying to understand immediate="true" 在不应该的情况下跳过输入

于 2013-10-18T10:24:07.413 回答