Hi,
just wondering what's the correct way to code my domain class (entity).
I have a list-type property and the list elements' classes are an inner class of my entity. Like this:
@Entity public class AuthMethodGroup { @Id private String id; @Valid private List<AuthNMethod> authNMethods; /** Constructor */ public AuthMethodGroup() { authNMethods = new ArrayList<AuthNMethod>(); authNMethods.add(new AuthNMethod()); authNMethods.add(new AuthNMethod()); } public AuthNMethod getFirstAuthNMethod() { return authNMethods.get(0); } public AuthNMethod getSecondAuthNMethod() { return authNMethods.get(1); } public static class AuthNMethod { private String name; @Min(value=0, message="#{messages['validation.min0']}") private int level; // ------- getters/setters------- } // ------- more getters/setters------- }
I expose the level
property of AuthNMethod in my page and I want to have it validated (should not be negative) with s:validateAll
:
<h:form> <s:validateAll> <h:inputText value="#{authMethodGroup.firstAuthNMethod.level}" required="true" /> </s:validateAll> </h:form>
Validation works fine.
The thing is that I noticed that it even works without the @Valid annotation on the property authNMethods
!
So can I safely drop the annotation?