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