From: Roland Häder Date: Sun, 20 Aug 2017 18:24:18 +0000 (+0200) Subject: Please cherry-pick: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=a85b902426439552c18080241ec2a7c5f920f07e;p=addressbook-war.git Please cherry-pick: - rewrote handling allowEmptyEmail flag - added noisy debug line Signed-off-by: Roland Häder --- diff --git a/src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestBean.java index 40dc2811..ac9e4f01 100644 --- a/src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestBean.java +++ b/src/java/org/mxchange/addressbook/beans/user/AddressbookAdminUserWebRequestBean.java @@ -222,6 +222,7 @@ public class AddressbookAdminUserWebRequestBean extends BaseAddressbookControlle * @return Redirect outcome */ public String addUser () { + System.out.println("addUser: this.contact="+this.getContact()); // As the form cannot validate the data (required="true"), check it here if (this.getUserName() == null) { // Throw NPE diff --git a/src/java/org/mxchange/addressbook/validator/emailaddress/AddressbookEmailAddressValidator.java b/src/java/org/mxchange/addressbook/validator/emailaddress/AddressbookEmailAddressValidator.java index aa4a968b..6537226e 100644 --- a/src/java/org/mxchange/addressbook/validator/emailaddress/AddressbookEmailAddressValidator.java +++ b/src/java/org/mxchange/addressbook/validator/emailaddress/AddressbookEmailAddressValidator.java @@ -67,17 +67,34 @@ public class AddressbookEmailAddressValidator extends BaseStringValidator implem @Override public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { + System.out.println("validate: value=" + value); //NOI18N // The required field String[] requiredFields = {"emailAddress", "emailAddressRepeat", "resendEmailAddress"}; //NOI18N - // Check if allowNull is given, otherwise assume "not allowed" - Boolean allowEmpty = (component.getAttributes().containsKey("allowEmpty") ? Boolean.parseBoolean((String) component.getAttributes().get("allowEmpty")) : Boolean.FALSE); //NOI18N + // Default is to reject empty email address fields + Boolean allowEmptyEmail = Boolean.FALSE; + + // Is attribute "allowEmptyEmail" set? + if (component.getAttributes().containsKey("allowEmptyEmail")) { //NOI18N + // Get attribute + Object attribute = component.getAttributes().get("allowEmptyEmail"); //NOI18N + System.out.println("attribute=" + attribute); //NOI18N + + // Make sure, it is Boolean as no String is accepted anymore + if (!(attribute instanceof String)) { + // Not valid attribute, please use "true" or "false" (default) + throw new IllegalArgumentException("allowEmptyEmail must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N + } + + // Securely cast it + allowEmptyEmail = Boolean.parseBoolean((String) attribute); + } // Pre-validation (example: not null, not a string, empty string ...) - super.preValidate(context, component, value, requiredFields, allowEmpty); + super.preValidate(context, component, value, requiredFields, allowEmptyEmail); // Is the email address empty and allowed? - if (null == value && allowEmpty) { + if (null == value && allowEmptyEmail) { // Then accept this here return; } else if (null == value) {