Discussions
Categories
- 197K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.8K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 556 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.4K SQL Developer
- 296.4K Development
- 17 Developer Projects
- 139 Programming Languages
- 293.1K Development Tools
- 111 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 161 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 475 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
ADF UI Element "validator" gets executed even if unchanged as of ADF 12.2.1.4

We have an ADF page which contains a form and a submit button.
Inside the forms are many UI elements with some of them having a "validator" expression.
In ADF 12.1.3, in case a field is EMPTY the validator never gets executed.
In ADF 12.2.1.4, when pressing the submit , the validator of items are being launched even if they are EMPTY
Any hint about this change in behaviour?
Here is the code (inside a PanelFormLayout):
<af:gridCell marginStart="5px" width="35%" marginEnd="0px" id="gc21"
halign="stretch" valign="stretch">
<af:inputText value="#{backingBeanScope.myBean.amountFrom}"
label="#{myResBundle.AMOUNT}"
autoSubmit="true" id="it8" simple="true"
binding="#{backingBeanScope.myBean.amountFromField}"
validator="#{backingBeanScope.myBean.amountValidator}"
valueChangeListener="#{backingBeanScope.myBean.onAmountFromChanged}">
<af:clientListener method="cbUtilities.checkAmount" type="keyPress"/>
<f:converter converterId="cbBigDecimalAmountConverter"/>
</af:inputText>
</af:gridCell>
....
<af:button text="#{myResBundle.SEARCH}" id="b1"
actionListener="#{backingBeanScope.myBean.onSearchClicked}">
</af:button>
Best Answer
-
Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,602 Red Diamond
There has been a change in validating empty fields in JSF 2.x. It has nothing to do with ADF it's how JSF works. Newer JSF version checks empty fields by default, older version does not. You can use some context parameters to tweak this behavior.
<context-param> <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> <param-value>true</param-value> </context-param>
I'm not sure which of them works with WLS.
You should read https://balusc.omnifaces.org/2015/10/the-empty-string-madness.html to get more info.
Timo
Answers
-
Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,602 Red Diamond
There has been a change in validating empty fields in JSF 2.x. It has nothing to do with ADF it's how JSF works. Newer JSF version checks empty fields by default, older version does not. You can use some context parameters to tweak this behavior.
<context-param> <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> <param-value>true</param-value> </context-param>
I'm not sure which of them works with WLS.
You should read https://balusc.omnifaces.org/2015/10/the-empty-string-madness.html to get more info.
Timo
-
Hello Timo
Thank you for your answer. Now it is clear and i tested the VALIDATE_EMPTY_FIELDS to false and its working.
One Confusing thing is that the property was set to TRUE but in ADF 12.1.3 (JSF 2.1) empty fields validation never gets executed. Not sure if its a bug in the implementation of JSF 2.1 which now works with JSF 2.2