JSF UIComponents的更新值

2019年5月11日 2点热度 0条评论

我有一个页面,其中包含3个选项和一个inputTextArea的单选。当我按下页面上的“提交”按钮时,我需要进行一些验证...为此,我在收音机上放置了一个验证器。问题是执行验证程序时,我需要inputTextArea和radio的值,但是它们带有旧值,而不是提交页面之前在页面上定义的值。
示例:首次提交代码时的String.valueOf(textArea.getValue()).equals(""))String.valueOf(textAreaOcorrencia.getValue())null,但是由于textArea为空,因此应将其视为空字符串。第二次提交时,它具有第一次提交时应具有的价值。我知道这与JSF生命周期有关,但是我不知道如何更新这些值?

解决方案如下:

在“申请请求值”阶段,将设置提交的值,并将其作为submittedValue可用。在验证阶段,将验证并转换提交的值,并将其设置为value。当组件出现在组件树中时,组件将按照自上而下的顺序进行验证。

因此,如果所讨论的组件实际上出现在组件树中的当前组件之后,则需要通过 UIInput#getSubmittedValue() 而不是 UIInput#getValue() 来获取其值。

要了解有关JSF生命周期的更多信息,您可能会发现this self-practice article很有用。