我有一个带有 3 个选项的单选选项和一个 inputTextArea 的页面。当我按下页面上的提交按钮时,我需要进行一些验证......为了做到这一点,我在收音机上安装了一个验证器。问题是,当执行验证器时,我需要 inputTextArea 和 radio 的值,但它们带有旧值,而不是提交页面之前在页面上定义的值。

例子:String.valueOf(textArea.getValue()).equals("")) 第一次执行时,代码 String.valueOf(textAreaOcorrencia.getValue()) 为 null,但由于 textArea 为空,因此应该为空细绳。当第二次提交时,它具有第一次提交时应有的值。我知道这与 JSF life cicle 有关,但我不知道如何更新这些值?

提前致谢...

有帮助吗?

解决方案

在应用请求值阶段,提交的值将被设置并可用 submittedValue. 。在验证阶段,提交的值将被验证和转换并设置为 value. 。当组件出现在组件树中时,组件将按照从上到下的顺序进行验证。

因此,如果有问题的组件实际上出现 组件树中的当前组件,您需要通过以下方式获取其值 UIInput#getSubmittedValue() 代替 UIInput#getValue().

要了解有关 JSF 生命周期的更多信息,您可能会发现 这篇自我练习文章 有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top