Here is the page :

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  |                       
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
  | <ui:composition xmlns="http://www.w3.org/1999/xhtml";
  |                 xmlns:s="http://jboss.com/products/seam/taglib";
  |                 xmlns:ui="http://java.sun.com/jsf/facelets";
  |                 xmlns:f="http://java.sun.com/jsf/core";
  |                 xmlns:h="http://java.sun.com/jsf/html";
  |                 xmlns:rich="http://richfaces.ajax4jsf.org/rich";
  |                 template="../layout/template.xhtml">
  | 
  | <ui:define name="body">
  |     
  |     <h:messages styleClass="message"/>
  |     
  |     <ui:include src="usersMenu.xhtml"/>
  |     
  |     <h:form>
  |     
  |             <s:validateAll>
  |     
  |             <f:facet name="aroundInvalidField">
  |             <s:span styleClass="errors"/>
  |         </f:facet>
  |         <f:facet name="afterInvalidField">
  |             <s:span> <s:message/></s:span>
  |         </f:facet>
  |             
  |             <s:decorate>#{messages['lrb.user.id']} <h:inputText id="id" 
value="#{user.id}"/></s:decorate><br/>
  |             <s:decorate>#{messages['lrb.user.username']} <h:inputText 
id="username" value="#{user.username}"/></s:decorate><br/>
  |         <s:decorate>#{messages['lrb.user.password']} <h:inputText 
id="password" value="#{user.password}"/></s:decorate><br/>
  |         <s:decorate>#{messages['lrb.user.email']} <h:inputText id="email" 
value="#{user.email}"/></s:decorate>
  |                                     
  |             </s:validateAll>
  |     
  |             <!-- actions -->
  |         <div class="actionButtons">
  |         
  |           <s:link view="/admin/users.xhtml" 
value="#{messages['lrb.cancel']}"/>
  |           <h:outputText value=" "/>
  |           <h:commandLink action="#{userHome.update}" 
value="#{messages['lrb.update']}" rendered="#{userHome.managed}"/>
  |           <h:outputText value=" "/>
  |           <s:link action="#{userHome.remove}" 
value="#{messages['lrb.delete']}" rendered="#{userHome.managed}"/>
  |           <h:outputText value=" "/>
  |           <h:commandLink action="#{userHome.persist}" 
value="#{messages['lrb.create']}" rendered="#{!userHome.managed}"/>
  | 
  |         </div>
  |     </h:form>
  | 
  |  </ui:define> 
  | </ui:composition>

the entity in components.xml :
<factory name="user" value="#{userHome.instance}"/>
  |     <fwk:entity-home name="userHome" 
  |              entity-class="com.lrb.metabook.User"
  |              new-instance="#{newUser}"/>
  |     
  |    <component name="newUser" class="com.lrb.metabook.User"/>
  |    
  |    <fwk:entity-query name="users"
  |                max-results="5">
  |         <fwk:ejbql>from User</fwk:ejbql>
  |         <fwk:order>id</fwk:order>
  |     </fwk:entity-query>

The thing is that if I add required="true" to each h:inputText, it works as 
expected, but do not follow annotated validation.

Here is the entity bean :

package com.lrb.metabook;
  | 
  | // Generated 10 juin 2007 20:21:17 by Hibernate Tools 3.2.0.b9
  | 
  | import java.util.Iterator;
  | 
  | /**
  |  * User generated by hbm2java
  |  */
  | @Entity
  | public class User implements java.io.Serializable {
  | 
  |     private long id;
  | 
  |     private String password;
  | 
  |     private String username;
  | 
  |     private List<Role> roles;
  | 
  |     private String email;
  | 
  |     public User() {
  |     }
  | 
  |     public User(long id, String password, String username) {
  |             this.id = id;
  |             this.password = password;
  |             this.username = username;
  |     }
  | 
  |     @Id
  |     @GeneratedValue
  |     public long getId() {
  |             return this.id;
  |     }
  | 
  |     public void setId(long id) {
  |             this.id = id;
  |     }
  | 
  |     @NotNull
  |     @Length(min = 1, max = 20)
  |     public String getPassword() {
  |             return this.password;
  |     }
  | 
  |     public void setPassword(String password) {
  |             this.password = password;
  |     }
  | 
  |     @NotNull
  |     @Length(min = 1, max = 20)
  |     public String getUsername() {
  |             return this.username;
  |     }
  | 
  |     public void setUsername(String username) {
  |             this.username = username;
  |     }
  | 
  |     @ManyToMany
  |     public List<Role> getRoles() {
  |             return roles;
  |     }
  | 
  |     private void setRoles(List<Role> roles) {
  |             this.roles = roles;
  |     }
  | 
  |     /**
  |      * @return roles list
  |      */
  |     public String rolesList() {
  | 
  |             if (roles != null) {
  |                     StringBuffer sb = new StringBuffer();
  |                     for (Iterator iter = roles.iterator(); iter.hasNext();) 
{
  |                             Role role = (Role) iter.next();
  |                             sb.append(role.getName() + " ");
  |                     }
  |                     return sb.toString();
  |             }
  |             return "";
  |     }
  | 
  |     @NotNull
  |     @Email
  |     public String getEmail() {
  |             return email;
  |     }
  | 
  |     public void setEmail(String email) {
  |             this.email = email;
  |     }
  | 
  | }
  | 

I'm using seam 1.3.0ALPHA

Any idea ?

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

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

Reply via email to