[jboss-user] [JBoss Seam] - Re: validation
fernando_jmt
do-not-reply at jboss.com
Sun Aug 12 11:17:37 EDT 2007
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.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4073378#4073378
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4073378
More information about the jboss-user
mailing list