Seam problem with SelectOneMenu
lbertrand May 7, 2008 11:54 AMHi,
I think I've a big problem with understanding Seam.
I'm trying to make a simple new user form, but I'm on the wrong way I think, because it doesn't work :
I've a User entity class :
@Entity
@Name("user")
@Table(name = "user", catalog = "mydb")
public class User implements java.io.Serializable {
private int uCode;
private UserType userType;
private String uFirstname;
private String uLastname;
private String uPhone;
private String uEmail;
then getters and setters...I've a UserType entity class :
@Entity
@Name("userType")
@Table(name = "usertype", catalog = "mydb")
public class UserType implements java.io.Serializable {
private int utCode;
private String utName;
then getters and setters...I have also a Session bean which manages my page :
@Stateful
@Name("userBean")
@Scope(ScopeType.SESSION)
public class UserBean implements IUser {
@In(required=false)
@Out(required=false)
User user;
@DataModel
private List<User> users;
@PersistenceContext
EntityManager entityManager;
public String add()
{
em.persist(user);
}
}and finally, here is my view :
<!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.org/rich"
template="layout/template.xhtml"
xmlns:a4j="http://richfaces.org/a4j">
<ui:define name="body">
<h:messages globalOnly="true" styleClass="message"/>
<rich:panel>
<f:facet name="header">#{messages.newcustomer}</f:facet>
<p>#{messages.completethisform} :</p>
<h:form>
<table border="0" width="600px">
<tr>
<td>#{messages.lastname} :</td>
<td><h:inputText value="#{user.uLastname}" /></td>
</tr>
<tr>
<td>#{messages.firstname} :</td>
<td><h:inputText value="#{user.uFirstname}" /></td>
</tr>
<tr>
<td>#{messages.usertype} :</td>
<td>
<h:selectOneMenu value="#{user.userType}" >
<s:selectItems value="#{allusertypes}" var="type" label="#{type.utname}" />
<s:convertEntity />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td>#{messages.email} :</td>
<td><h:inputText value="#{utilisateur.utemail}" /></td>
</tr>
<tr>
<td>#{messages.phone} :</td>
<td><h:inputText value="#{user.uPhone}" /></td>
</tr>
</table>
<h:commandButton action="#{userBean.add}" value="Ok" type="submit" ></h:commandButton>
</h:form>
</rich:panel>
</ui:define>
</ui:composition>The main problem concerns the selectOneMenu
, because I can't get the UserType value in my User Entity, and I have
this kind of error in my Eclipse Console :
INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. sourceId=j_id49:j_id57[severity=(ERROR 2), summary=(j_id49:j_id57: Erreur de validation: Valeur not valid.), detail=(j_id49:j_id57: Erreur de validation: Valeur not valid.)]
Could someone help me please ?