Beginner Question
drab Jun 12, 2007 12:02 PMHi,
I'm trying for a few days now to get the most basic things to work with Seam, but I fail miserably. I'm highly frustrated and of course try to find the missing piece of information here that I'm apparently lacking to get this to work.
I created a project with seam-gen and added a page register.xml that contains this:
<h:form id="registerForm" rendered="#{userRegistration.account==null}">
<h:outputLabel for="realName">name:</h:outputLabel>
<h:inputText value="#{userRegistration.account.realName}" size="30" id="realName"/><br/>
<h:outputLabel for="email">email: </h:outputLabel>
<h:inputText value="#{userRegistration.account.email}" id="email" size="30"/><br/>
<h:commandButton type="submit" value="register" action="#{userRegistration.register}"/>
</h:form>
<h:form id="otherForm" rendered="#{userRegistration.account!=null}">
you have been registered as #{userRegistration.account.realName}. You should receive an email with your password.
</h:form>
I have my LoginAccount entity:
@Entity
@Name("LoginAccount")
public class LoginAccount implements Serializable {
@Id
@GeneratedValue
protected int id;
protected String realName;
@Email
protected String email;
public LoginAccount() {
}
...+setter and getters
and I have my "userRegistration" session bean:
@Stateful
@Name("userRegistration")
@Scope(ScopeType.SESSION)
public class RegistratorAction implements Registrator {
@Logger
private Log log;
@In @Out
public LoginAccount account;
@PersistenceContext(type = EXTENDED)
private EntityManager em;
public String register() {
log.info("persisting #0", account.toString());
em.persist(account);
return null;
}
but when I click on the link to this page, I get following error:
/register.xhtml @19,80 rendered="#{userRegistration.account==null}": Bean: org.javassist.tmp.java.lang.Object_$$_javassist_39, property: account
so I changed all occurences of "userRegistration.account" into "account" thinking it might be in a global context. Now, the site displays and I can enter my name and email. But when I press the submit button, nothing happens. "register()" is not called on the Session, and neither "getRealName()" or "setRealName()" of the entity are called.
Could somebody give me a hint what I'm doing wrong? I'm pretty frustrated that I can't even get a helloWorld-type application to work.
thanks
Dirk