I've got an issue in my adf application for both the change password page and the edit user page.
I have a validator set up on the second of two password fields (af:inputText secret="true") to ensure that the passwords match. If the validation fails then the value in the field is replaced by "******" as defined in UIConstants.SECRET_FIELD_DEFAULT_VALUE as defined in the trinidad-impl jar.
I've made sure this issue no longer occurs on any other submission by nulling the values on submission, so that any other errors (such as existing username or insufficient permissions) do not cause this, but the validation occurs before submission so this does not help with password mismatch.
I've tried blanking both the backing bean values and the field values in the validator if it hits the fail condition, but this seems to have absolutely no effect, I presume because it passes in the value to validate and so uses that to display no matter what.
I need it to go through the validator rather than just fail at the submission because we need it to highlight the field with the error rather than just give the general error popup. I've tried various ways of trying to set the error state of the field but nothing showed up without the validator exception being thrown, which then triggers the value change to "******".
Is there any way to blank the value of a field that's being validated or to bypass the secret field value reset? The documentation says it changes the value on submission, but since the validator prevents it from getting to the actual submission listener then is there a way to make it realise that it's not been submitted yet? Or to force validation to occur without pressing the submit button? I tried setting autosubmit="true" but it doesn't work unless they navigate away from the field, which they don't do if it's the last field of a change password form, so I don't think that's an option.
We're using ADF 11.1.1, but if there's a solution available in 12.1.2 then I can wait until we're able to ship with that instead.
Thank you in advance, please let me know if there's anything I missed out. (We're not using JDeveloper, just in case anyone wants to know)
The answer provided by Timo Hahn to Failed validation of file uploads makes them uneditable also seems to be applicable for this question.
In the validator, just before throwing the ValidationException call resetValue() on the text field component and the local value will be reset to blank and to will not be reset to "******".