Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between UIInput#getValue() and getLocalValue() during validation

I would like to have an illustrative explanation about the difference between getValue() and getLocalValue() methods of UIInput components in the aspect of performing multiple field validation: jsf validate two fields in one time.

What is the difference in usage of this methods if the fields are already validated? The ValueHolder API documentation is not very helpful in answering this.

like image 521
1337 Avatar asked Jun 08 '12 12:06

1337


1 Answers

If the UIInput component has been validated beforehand and is marked invalid (i.e. isValid() method returns false), then the getLocalValue() returns null, but the getValue() returns the old model value, if any. If it's marked valid, then both returns the same value, namely the submitted, converted and validated value.

You'd like to add a check on isValid() beforehand. You may find the source code examples of the OmniFaces multiple field validators helpful. See the ValidateMultipleFields source code link at the bottom of the <o:validateEqual> showcase page.

See also:

  • JSF doesn't support cross-field validation, is there a workaround?
like image 190
BalusC Avatar answered Oct 30 '22 23:10

BalusC