Validation 验证期间UIInput#getValue()和getLocalValue()之间的差异

Validation 验证期间UIInput#getValue()和getLocalValue()之间的差异,validation,jsf,jsf-2,lifecycle,Validation,Jsf,Jsf 2,Lifecycle,我想对的getValue()和getLocalValue()方法在执行多字段验证方面的区别进行说明: 如果字段已验证,则此方法的使用有何区别?如果UIInput组件事先已经过验证并且被标记为无效(即isValid()方法返回false),则getLocalValue()返回null,但getValue()返回旧模型值(如果有)。如果标记为有效,则两者都返回相同的值,即提交、转换和验证的值 您希望事先在isValid()上添加一个检查。您可能会发现多字段验证器的源代码示例非常有用。请参见showc

我想对的
getValue()
getLocalValue()
方法在执行多字段验证方面的区别进行说明:


如果字段已验证,则此方法的使用有何区别?如果
UIInput
组件事先已经过验证并且被标记为无效(即
isValid()
方法返回
false
),则
getLocalValue()
返回
null
,但
getValue()
返回旧模型值(如果有)。如果标记为有效,则两者都返回相同的值,即提交、转换和验证的值

您希望事先在
isValid()
上添加一个检查。您可能会发现多字段验证器的源代码示例非常有用。请参见showcase页面底部的源代码链接

另见:

通常我们什么时候应该使用getValue()?我在博客上看到我们“在编码过程中必须使用getValue()”,这是我们唯一应该使用它的地方吗?@Tarik:哦,你是说模型值?这在更新模型值阶段发生。另见a.o.@Tarik:验证期间。另请参见当前问题、“请参见”链接和
UIInput
源代码:@Tarik:There's no
setLocalValue()
setValue()。
getValue()
如果设置,则返回本地值,否则返回模型值。再次查看源代码(和javadoc)。@Shirgil:请记住,提交的值、“是有效的”、本地值和“是本地值集”保存在JSF视图状态中。也就是说,它们是有效的视图范围。