3

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

示例String.valueOf(textArea.getValue()).equals(""))第一次提交时,代码String.valueOf(textAreaOcorrencia.getValue())null,但由于textArea是空的,它应该是一个空字符串。当它第二次提交时,它具有它在第一次提交时应该具有的值。我知道这与JSF生命周期有关,但我不知道如何更新这些值?

4

1 回答 1

3

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

因此,如果有问题的组件实际上出现组件树中的当前组件之后,则需要通过UIInput#getSubmittedValue()而不是UIInput#getValue().

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

于 2010-02-10T19:07:12.957 回答