Here is the entity class:


  | @Entity
  | @Name("foo")
  | @Table(name = "foo")
  | public class Foo implements Serializable {
  | ...
  | @Column(name = "non_repeat_cycle", nullable = false)
  |   public Short getNonRepeatCycle() {
  |     return nonRepeatCycle;
  |   }
  | 
  | public void setNonRepeatCycle(Short nonRepeatCycle)
  |       throws IllegalNonRepeatCycleException {
  |    boolean valid = true;
  |     if (nonRepeatCycle <= 0) {
  |       valid = false;
  |       throw new IllegalNonRepeatCycleException(nonRepeatCycle);
  |     } 
  |     if (valid){
  |       this.nonRepeatCycle = nonRepeatCycle;
  |     }
  |   }
  | ...
  | 


Client code in xhtml:

  | <s:decorate template="layout/edit.xhtml">
  |           <ui:define name="label">Non-repeat cycle:</ui:define>
  |           <h:inputText
  |             value="#{fooManager.foo.nonRepeatCycle}" required="true" />
  |           <h:outputText value=" days" />
  |         </s:decorate>
  | 
  | 

The idea is that,  this way the entity knows how to validate itself and I do 
not have to write a separate validator.

In fact it works very well, when I tested with the number "-3", there is error 
message displayed in red and the conversation hanged like expected (hanged but 
not killed, after I corrected the value, the conversation goes smoothly), and 
the view is also like expected....The only problem is, the error message looks 
like this:

  | /foo-management.xhtml @58,31 value="#{fooManager.foo.nonRepeatCycle}": 
Error writing 'nonRepeatCycle' on type myproject.entity.Foo
  | 

My exception class looks like this:

  | public class IllegalNonRepeatCycleException extends Exception {
  |   private static final String DEFAULT_MSG = "Non-repeat-cycle must be 
greater than zero!";  
  |   @Logger
  |   private static Log log;
  | 
  |   public IllegalNonRepeatCycleException(){
  |     super(DEFAULT_MSG);
  |   }
  |   
  |   public IllegalNonRepeatCycleException(Short nonRepeatCycle) {
  |     super(DEFAULT_MSG + " " + nonRepeatCycle + " is illegal.");
  |     log.info("Exception generated!");
  |   }
  |   
  |   public String toString(){
  |     return this.getMessage();
  |   }
  | }
  | 

It would be nice if the error message in the view can be the exception message. 
How to do this? Thanks in advance for any help!


Regards,
Ellen

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4073648#4073648

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4073648
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to