This content has been marked as final.
Show 3 replies
-
1. Re: validation
fernando_jmt Aug 12, 2007 11:17 AM (in response to madhav_inamti)I see three options:
A) To catch the Exception in your code and then show the respective message.public void create(Object entity) throws MyDuplicatedException { try { em.persist(entity); em.flush(); } catch (EntityExistsException e) { throw new MyDuplicatedException(); } }
B) To use @Validator and @Name enabling a JSF Validator as Seam component.@Name("equalValidator") @Validator public class EqualValidator implements javax.faces.validator.Validator { ... public void validate(FacesContext facesContext, UIComponent uiComponent, Object value) throws ValidatorException { ... } } -------------------------------------- <h:inputSecret id="confirmPassword" value="#{user.confirmPassword}" required="true" maxlength="40" redisplay="true" tabindex="3" styleClass="input"> <f:validator validatorId="equalValidator"/> </h:inputSecret>
C) To implement custom Hibernate Validator (it will work with s:validate).public class MyEmailValidator implements Validator<MyEmail> { ... public boolean isValid(Object value) {... } ... } ----------------------------- @Documented @ValidatorClass(EmailValidator.class) @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface MyEmail { String message() default "{validator.email}"; } ............. @Entity public class User { ... @MyEmail private String email; ... }
I used A) and B) and C) in different scenarios, but at the moment I din't use C) to access database querying for some data. Maybe you can try making MyEmail class a Seam component (which will allows you to access SMPC).
HTH. -
2. Re: validation
madhav_inamti Aug 13, 2007 10:52 PM (in response to madhav_inamti)Thank you. I seem to like approach B.
-
3. Re: validation
monkeyden Aug 13, 2007 11:55 PM (in response to madhav_inamti)Or "D", use surrogate keys and don't let the user edit the PK.