Author: jcouteau Date: 2011-08-18 17:20:18 +0200 (Thu, 18 Aug 2011) New Revision: 2168 Url: http://nuiton.org/repositories/revision/nuiton-utils/2168 Log: Add validators for #1686 Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/CityNameFieldValidator.java trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/EmailFieldValidator.java trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/LastNameFieldValidator.java trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidator.java trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidator.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/model/Contact.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/CityNameFieldValidatorTest.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/EmailFieldValidatorTest.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/LastNameFieldValidatorTest.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidatorTest.java trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidatorTest.java trunk/nuiton-validator/src/test/resources/org/nuiton/validator/model/Contact-error-validation.xml Modified: trunk/nuiton-validator/src/test/resources/validators.xml Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/CityNameFieldValidator.java =================================================================== --- trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/CityNameFieldValidator.java (rev 0) +++ trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/CityNameFieldValidator.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,47 @@ +package org.nuiton.validator.xwork2.field; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Validator for French cities names : + * - No number accepted + * - Accept spaces, - and ' + */ +public class CityNameFieldValidator extends FieldValidatorSupport { + + protected static String CITY_NAME_REGEXP = "[^\\d]+"; + protected static Pattern p = Pattern.compile(CITY_NAME_REGEXP); + + //TODO JC18082011 - Deal with cedex + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object value = getFieldValue(fieldName, object); + + if (value == null) { + // no value defined + addFieldError(fieldName, object); + return; + } + if (value instanceof String) { + Matcher m = p.matcher((String) value); + if (!m.matches()) { + addFieldError(fieldName, object); + return; + } + } else { + addFieldError(fieldName, object); + return; + } + } + + @Override + public String getValidatorType() { + return "cityName"; + } +} Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/EmailFieldValidator.java =================================================================== --- trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/EmailFieldValidator.java (rev 0) +++ trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/EmailFieldValidator.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,39 @@ +package org.nuiton.validator.xwork2.field; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import org.nuiton.util.StringUtil; + +/** + * Validator for email addresses : + * - Deal with + in addresses + */ +public class EmailFieldValidator extends FieldValidatorSupport { + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object value = getFieldValue(fieldName, object); + + if (value == null) { + // no value defined + addFieldError(fieldName, object); + return; + } + if (value instanceof String) { + if (!StringUtil.isEmail((String)value)) { + addFieldError(fieldName, object); + return; + } + } else { + addFieldError(fieldName, object); + return; + } + } + + @Override + public String getValidatorType() { + return "email"; + } +} Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/LastNameFieldValidator.java =================================================================== --- trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/LastNameFieldValidator.java (rev 0) +++ trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/LastNameFieldValidator.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,45 @@ +package org.nuiton.validator.xwork2.field; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Validator for French last names : + * - No number accepted + * - Accept spaces, - and ' + */ +public class LastNameFieldValidator extends FieldValidatorSupport { + + protected static String LAST_NAME_REGEXP = "[^\\d]+"; + protected static Pattern p = Pattern.compile(LAST_NAME_REGEXP); + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object value = getFieldValue(fieldName, object); + + if (value == null) { + // no value defined + addFieldError(fieldName, object); + return; + } + if (value instanceof String) { + Matcher m = p.matcher((String) value); + if (!m.matches()) { + addFieldError(fieldName, object); + return; + } + } else { + addFieldError(fieldName, object); + return; + } + } + + @Override + public String getValidatorType() { + return "lastName"; + } +} Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidator.java =================================================================== --- trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidator.java (rev 0) +++ trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidator.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,48 @@ +package org.nuiton.validator.xwork2.field; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * + * Validator used to validate French phone numbers like : + * - 0000000000 + * - 00.00.00.00.00 + * - 00-00-00-00-00 + * - 00 00 00 00 00 + */ +public class PhoneNumberFieldValidator extends FieldValidatorSupport { + + protected static String PHONE_NUMBER_REGEXP = "[0-9]{10}|(([0-9]{2}[-\\.\\s]){4})[0-9]{2}"; + protected static Pattern p = Pattern.compile(PHONE_NUMBER_REGEXP); + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object value = getFieldValue(fieldName, object); + + if (value == null) { + // no value defined + addFieldError(fieldName, object); + return; + } + if (value instanceof String) { + Matcher m = p.matcher((String)value); + if (!m.matches()){ + addFieldError(fieldName, object); + return; + } + } else { + addFieldError(fieldName, object); + return; + } + } + + @Override + public String getValidatorType() { + return "phoneNumber"; + } +} Added: trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidator.java =================================================================== --- trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidator.java (rev 0) +++ trunk/nuiton-validator/src/main/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidator.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,47 @@ +package org.nuiton.validator.xwork2.field; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Validate post codes for French cities + * + * - Take into account 2A and 2B + * - Take into account DOMs and TOMs + * - Postcodes starting with 99 are not valid + */ +public class PostCodeFieldValidator extends FieldValidatorSupport { + + protected static String POST_CODE_REGEXP = "^((0[1-9])|([1-8][0-9])|(9[0-8])|(2A)|(2B))[0-9]{3}$"; + protected static Pattern p = Pattern.compile(POST_CODE_REGEXP); + + @Override + public void validate(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object value = getFieldValue(fieldName, object); + + if (value == null) { + // no value defined + addFieldError(fieldName, object); + return; + } + if (value instanceof String) { + Matcher m = p.matcher((String) value); + if (!m.matches()) { + addFieldError(fieldName, object); + return; + } + } else { + addFieldError(fieldName, object); + return; + } + } + + @Override + public String getValidatorType() { + return "postCode"; + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/model/Contact.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/model/Contact.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/model/Contact.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,67 @@ +package org.nuiton.validator.model; + +/** + * + */ +public class Contact { + + public static final String PROPERTY_LAST_NAME = "name"; + + public static final String PROPERTY_EMAIL = "email"; + + public static final String PROPERTY_PHONE = "phone"; + + public static final String PROPERTY_POSTCODE = "postCode"; + + public static final String PROPERTY_CITY = "city"; + + protected String name; + + protected String email; + + protected String phone; + + protected String postCode; + + protected String city; + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPostCode() { + return postCode; + } + + public void setPostCode(String postCode) { + this.postCode = postCode; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/CityNameFieldValidatorTest.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/CityNameFieldValidatorTest.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/CityNameFieldValidatorTest.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,72 @@ +package org.nuiton.validator.xwork2.field; + +import org.junit.Test; +import org.nuiton.validator.model.Contact; + +/** + * + */ +public class CityNameFieldValidatorTest extends AbstractFieldValidatorTest<Contact> { + + public CityNameFieldValidatorTest() { + super(Contact.class); + } + + @Test + @Override + public void testValidator() throws Exception { + + assertNull(bean.getCity()); + + // Valid city + bean.setCity("Nantes"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("Couëron"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("Saint Sébastien Sur Loire"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("St Sebastien sur Loire"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("St-Sebastien-sur-Loire"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("Y"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Valid city + bean.setCity("Saint-Remy-en-Bouzemont-Saint-Genest-et-Isson"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + false); + + // Not Valid city name + bean.setCity("2Ville"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + true); + + // Not Valid city name + bean.setCity("Ville2Merde"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + true); + + // Not Valid city name + bean.setCity("Ville 2 Merde"); + assertFieldInError(Contact.PROPERTY_CITY, "contact.city.format", + true); + + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/EmailFieldValidatorTest.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/EmailFieldValidatorTest.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/EmailFieldValidatorTest.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,34 @@ +package org.nuiton.validator.xwork2.field; + +import org.junit.Test; +import org.nuiton.validator.model.Contact; + +/** + * + */ +public class EmailFieldValidatorTest extends AbstractFieldValidatorTest<Contact> { + + public EmailFieldValidatorTest() { + super(Contact.class); + } + + @Test + @Override + public void testValidator() throws Exception { + + assertNull(bean.getEmail()); + + // Valid email + bean.setEmail("toto@toto.com"); + assertFieldInError(Contact.PROPERTY_EMAIL, "contact.email.format", false); + + // Valid email with + + bean.setEmail("toto+validation@toto.com"); + assertFieldInError(Contact.PROPERTY_EMAIL, "contact.email.format", false); + + // Not valid email + bean.setEmail("toto"); + assertFieldInError(Contact.PROPERTY_EMAIL, "contact.email.format", true); + + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/LastNameFieldValidatorTest.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/LastNameFieldValidatorTest.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/LastNameFieldValidatorTest.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,54 @@ +package org.nuiton.validator.xwork2.field; + +import org.junit.Test; +import org.nuiton.validator.model.Contact; + +/** + * User: couteau + * Date: 18/08/11 + */ +public class LastNameFieldValidatorTest extends AbstractFieldValidatorTest<Contact> { + + public LastNameFieldValidatorTest() { + super(Contact.class); + } + + @Test + @Override + public void testValidator() throws Exception { + + assertNull(bean.getCity()); + + // Valid name + bean.setName("Couteau"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + false); + + // Valid name + bean.setName("Le Ny"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + false); + + // Valid name + bean.setName("Clémenceau"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + false); + + // Valid name + bean.setName("Couteau--Viney"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + false); + + // Not valid name + bean.setName("2Pac"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + true); + + // Not valid name + bean.setName("Nom2Merde"); + assertFieldInError(Contact.PROPERTY_LAST_NAME, "contact.name.format", + true); + + + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidatorTest.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidatorTest.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PhoneNumberFieldValidatorTest.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,103 @@ +package org.nuiton.validator.xwork2.field; + +import org.junit.Test; +import org.nuiton.validator.model.Contact; + +/** + * User: couteau + * Date: 18/08/11 + */ +public class PhoneNumberFieldValidatorTest extends AbstractFieldValidatorTest<Contact> { + + public PhoneNumberFieldValidatorTest() { + super(Contact.class); + } + + @Test + @Override + public void testValidator() throws Exception { + + assertNull(bean.getPhone()); + + // Valid phone Number + bean.setPhone("0000000000"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + false); + + // Valid phone Number + bean.setPhone("00 00 00 00 00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + false); + + // Valid phone Number + bean.setPhone("00-00-00-00-00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + false); + + // Valid phone Number + bean.setPhone("00.00.00.00.00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + false); + + // Too long phone Number + bean.setPhone("00 00 00 00 00 00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too long phone Number + bean.setPhone("00-00-00-00-00-00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too long phone Number + bean.setPhone("000000000000"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too long phone Number + bean.setPhone("00.00.00.00.00.00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too short phone Number + bean.setPhone("00.00.00.00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too short phone Number + bean.setPhone("00000000"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too short phone Number + bean.setPhone("00-00-00-00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Too short phone Number + bean.setPhone("00 00 00 00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Invalid character in phone Number + bean.setPhone("00 00 ab 00 00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Invalid character in phone Number + bean.setPhone("0000ab0000"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Invalid character in phone Number + bean.setPhone("00.00.ab.00.00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + // Invalid character in phone Number + bean.setPhone("00-00-ab-00-00"); + assertFieldInError(Contact.PROPERTY_PHONE, "contact.phoneNumber.format", + true); + + } +} Added: trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidatorTest.java =================================================================== --- trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidatorTest.java (rev 0) +++ trunk/nuiton-validator/src/test/java/org/nuiton/validator/xwork2/field/PostCodeFieldValidatorTest.java 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,57 @@ +package org.nuiton.validator.xwork2.field; + +import org.junit.Test; +import org.nuiton.validator.model.Contact; + +/** + * + */ +public class PostCodeFieldValidatorTest extends AbstractFieldValidatorTest<Contact> { + + public PostCodeFieldValidatorTest() { + super(Contact.class); + } + + @Test + @Override + public void testValidator() throws Exception { + + assertNull(bean.getPostCode()); + + // Valid postCode + bean.setPostCode("44230"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + false); + + // Valid postCode for Corsica + bean.setEmail("2A220"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + false); + + // Valid postCode for DOM + bean.setEmail("97120"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + false); + + // Valid postCode for TOM + bean.setPostCode("98120"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + false); + + // Too long postCode + bean.setPostCode("442300"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + true); + + // Too short postCode + bean.setPostCode("4423"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + true); + + // postCode cannot start with 99 + bean.setPostCode("99230"); + assertFieldInError(Contact.PROPERTY_POSTCODE, "contact.postCode.format", + true); + + } +} Added: trunk/nuiton-validator/src/test/resources/org/nuiton/validator/model/Contact-error-validation.xml =================================================================== --- trunk/nuiton-validator/src/test/resources/org/nuiton/validator/model/Contact-error-validation.xml (rev 0) +++ trunk/nuiton-validator/src/test/resources/org/nuiton/validator/model/Contact-error-validation.xml 2011-08-18 15:20:18 UTC (rev 2168) @@ -0,0 +1,60 @@ +<!-- + #%L + Nuiton Utils :: Nuiton Validator + + $Id: Pet-error-validation.xml 2033 2011-01-23 17:28:26Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/nuiton-utils/trunk/nuiton-validator/src/test/resou... $ + %% + Copyright (C) 2011 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + + <field name="email"> + <field-validator type="emailNuiton"> + <message>contact.email.format</message> + </field-validator> + </field> + + <field name="postCode"> + <field-validator type="postCode"> + <message>contact.postCode.format</message> + </field-validator> + </field> + + <field name="city"> + <field-validator type="cityName"> + <message>contact.city.format</message> + </field-validator> + </field> + + <field name="name"> + <field-validator type="lastName"> + <message>contact.name.format</message> + </field-validator> + </field> + + <field name="phone"> + <field-validator type="phoneNumber"> + <message>contact.phoneNumber.format</message> + </field-validator> + </field> + +</validators> \ No newline at end of file Modified: trunk/nuiton-validator/src/test/resources/validators.xml =================================================================== --- trunk/nuiton-validator/src/test/resources/validators.xml 2011-08-18 05:42:41 UTC (rev 2167) +++ trunk/nuiton-validator/src/test/resources/validators.xml 2011-08-18 15:20:18 UTC (rev 2168) @@ -56,5 +56,10 @@ <validator name="existingDirectory" class="org.nuiton.validator.xwork2.field.ExistingDirectoryFieldValidator"/> <validator name="notExistingDirectory" class="org.nuiton.validator.xwork2.field.NotExistingDirectoryFieldValidator"/> <validator name="fieldexpressionwithparams" class="org.nuiton.validator.xwork2.field.FieldExpressionWithParamsValidator"/> + <validator name="phoneNumber" class="org.nuiton.validator.xwork2.field.PhoneNumberFieldValidator"/> + <validator name="emailNuiton" class="org.nuiton.validator.xwork2.field.EmailFieldValidator"/> + <validator name="cityName" class="org.nuiton.validator.xwork2.field.CityNameFieldValidator"/> + <validator name="lastName" class="org.nuiton.validator.xwork2.field.LastNameFieldValidator"/> + <validator name="postCode" class="org.nuiton.validator.xwork2.field.PostCodeFieldValidator"/> </validators> \ No newline at end of file