Problem with forms
ypasmk Aug 8, 2006 11:43 AMI have two entity classes users and names with a onetomany relation...the problem is that when I have this names entity in my form when I hit submit nothing happens. If I have only the users in my form everything goes well. The submit action calls the registerUser.register method...anyone can explain me what am I doing wrong..?There is no error messages in jboss btw..
my register.xhtml page
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
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:s="http://jboss.com/products/seam/taglib">
<body>
this text won't be displayed
<ui:composition template="extras/template.xhtml">
<ui:define name="title">
Registration Form
</ui:define>
<ui:define name="body">
<h:form id="testForm">
<table border="0">
<s:validateAll>
<tr>
<td>Surname</td>
<td><h:inputText value="#{names.lastname}" /></td>
</tr>
<tr>
<td>FirstName</td>
<td><h:inputText value="#{names.firstname}" /></td>
</tr>
<tr>
<td>MiddleName</td>
<td><h:inputText value="#{names.middlename}" /></td>
</tr>
<!--
<tr>
<td>Gender</td>
<td><h:inputText value="#{author.gender}" /></td>
</tr>
<tr>
<td>Title</td>
<td><h:inputText value="#{author.title}" /></td>
</tr>
<tr>
<td>Year Of Birth</td>
<td><h:inputText value="#{author.yearOfBirth}" /></td>
</tr>
<tr>
<td>url</td>
<td><h:inputText value="#{author.url}" /></td>
</tr>
<tr>
<td>email</td>
<td><h:inputText value="#{author.email}" /></td>
</tr>
<tr>
<td>keywords</td>
<td><h:inputText value="#{author.keywords}" /></td>
</tr>
<tr>
<td>Password</td>
<td><h:inputText value="#{author.password}" /></td>
</tr>
<tr>
<td>Retype Password</td>
<td><h:inputText value="#{author.retypePassword}" /></td>
</tr>
<tr>
<td>Secret Question</td>
<td><h:inputText value="#{author.secretQuestion}" /></td>
</tr>
<tr>
<td>Secret Answer</td>
<td><h:inputText value="#{author.secretAnswer}" /></td>
</tr> -->
<tr>
<td></td>
<td><h:commandButton type="Submit" value="Submit" action="#{registerAuthor.register}" /></td>
</tr>
</s:validateAll>
</table>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>
my ejb class
package uai.entities;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.validator.NotNull;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Scope;
@Entity
@Table(name="names")
@Scope(ScopeType.CONVERSATION)
public class AuthorName implements Serializable {
/**
*
*/
private static final long serialVersionUID = 7854278207664893998L;
private String lastname;
private String firstname;
private String middlename;
private Long id;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getMiddlename() {
return middlename;
}
public void setMiddlename(String middlename) {
this.middlename = middlename;
}
@NotNull
public String getFirstname() {
return firstname;
}
public void setFirstname(String name) {
this.firstname = name;
}
@NotNull
public String getLastname() {
return lastname;
}
public void setLastname(String surname) {
this.lastname = surname;
}
}
and my registerAuthor class
package uai.blogic;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.interceptor.Interceptors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.ejb.SeamInterceptor;
import org.jboss.seam.log.Log;
import uai.entities.AuthorName;
import uai.entities.testObject;
import static org.jboss.seam.ScopeType.EVENT;
@Interceptors(SeamInterceptor.class)
@Stateful
@Name("registerAuthor")
public class RegisterAuthor implements Register {
@Logger
private Log log;
@In(create=true)
private transient FacesMessages facesMessages;
@In @Out
private AuthorName authorName;
//@In @Out
//private uai.entities.AuthorUser author;
@PersistenceContext
private EntityManager em;
public String register() {
log.info("hi there");
//log.info("authorname : "+this.author.getEmail());
return "/registered.xhtml";
}
@Destroy
@Remove
public void destroy() {
//log.info("destroyed (register)");
}
}