[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