JSF Fehlermeldung Target Unreacheable

hyperion

Bekanntes Mitglied
Hallo,

ich bin immernoch dabei eine einfache Registrierung zu realisieren. Leider stosse ich andauernd auf irgendwelche Probleme.
Diesmal bekomem ich eine Fehlermeldung "/register.xhtml @13,100 value="#{registerBean.user.loginName}": Target Unreachable, 'null' returned null". Könnt Ihr mir da bitte weiterhelfen, ich verstehe nicht warum es nicht funktioniert. Eigentlich sind doch alle nöttigen Setter udn Getter definiert.

register.xhtml
Java:
<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Registrierung</title>
    </h:head>
    <h:body>
        <h:form id="registerForm">
            <h:panelGrid id="registerPanelGrid" columns="2">
                <h:outputText value="Loginname:" />
                <h:inputText id="loginName" value="#{registerBean.user.loginName}" maxlength="45"/>

                <h:outputText value="Passwort:" />
                <h:inputSecret id ="password" value="#{registerBean.user.password}" maxlength="45"/>

                <h:outputText value="Name:" />
                <h:inputText id="name" value="#{registerBean.person.name}" maxlength="45"/>

                <h:outputText value="Vorname:" />
                <h:inputText id="firstName" value="#{registerBean.person.firstName}" maxlength="45"/>

                <h:outputText value="E-Mail:" />
                <h:inputText id="mail" value="#{registerBean.user.mail}" maxlength="45"/>

                <h:outputText value="Geburtstag:" />
                <h:inputText  id="birthday" value="#{registerBean.person.birthday}">
                    <f:convertDateTime pattern="dd.mm.yyyy"/>
                </h:inputText>
                <h:commandButton id="register" action="#{registerBean.register}" value="Login"  />
            </h:panelGrid>
        </h:form>
    </h:body>
</html>

registerBean
Java:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;

@ManagedBean(name="registerBean")
@SessionScoped
public class RegisterBean {

    private Person person;
    private User user;

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String register(){

        Boolean isValidUser = user.validate();
        Boolean isValidPerson = person.validate();

        if (isValidUser && isValidPerson){
            SessionFactory sf       = HibernateSession.getSessionFactory();
            Session session         = null;
            Transaction transaction = null;

            try
            {
                session             = sf.getCurrentSession();
                transaction         = session.beginTransaction();
                session.save(user);
                transaction.commit();
                return "success";
            }
            catch (Exception e)
            {
                // rollback(transaction);
                System.out.println(e.getMessage());
            }
        }
        return "failed";
    }
}

User
Java:
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;

@Entity
@Table(name="User")
@SequenceGenerator(name="ID", initialValue=1, allocationSize=1)
public class User implements Serializable{

    @Column(name = "ID", nullable = false)
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    @Column(name = "LoginName", nullable = false)
    private String loginName;
    @Column(name = "LoginPassword", nullable = false)
    private String loginPassword;
    @Column(name = "PersonID", nullable = false)
    @OneToOne
    private Person person;
    @Column(name = "Mail", nullable = false)
    private String mail;
    @Column(name = "RegisterDate", nullable = false)
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date registerDate;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getLoginPassword() {
        return loginPassword;
    }

    public void setLoginPassword(String loginPassword) {
        this.loginPassword = loginPassword;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public Date getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(Date registerDate) {
        this.registerDate = registerDate;
    }

    public Boolean validate(){
        return true;
    }
}

Gruß hyperion
 
G

gman

Gast
Hi,

in deiner "registerBean" wird nirgends ein neues Objekt vom Typ "User" erzeugt. Ich denke mal das er deshalb auch
nicht auf dessen Property "loginName" zugreifen kann.
 

hyperion

Bekanntes Mitglied
Hallo,

Danke für den Tipp. Dachte dass die Objekte irgendwie automatisch erzeugt werden sowie die registerBean auch.

Naja habe den Code jetzt so angepasst:
Java:
...
public class RegisterBean {

    private Person person = new Person();
    private User user = new User();
...

Gruß hyperion
 

Ähnliche Java Themen

Neue Themen


Oben