JSF Fo_rmulardaten in DB mittels H_i_bernate speichern

Status
Nicht offen für weitere Antworten.

Shoodan

Mitglied
wie die Überschrift schon verrät möchte ich Jsf Formulardaten mittels Hibernate in eine Mysql-DB speichern.
Mein Problem ist, dass ich keine Ahnung habe ich wie das realisieren kann????
Habe ein paar Stunden gegooglelt und nichts gefunden....

Was ich schon habe:
1. JSP-seite mit formular, die die Daten auf anderer JSP-Seite ausgibt. wird mittels JSF realisiert, funktioniert
2. Eine BeanKlasse, die mit Annotations und einer main-Methode daten in Datenbank speichert, funktioniert

Jetzt würde ich gerne diese beiden kombinieren. Wo erstelle ich aber meine sessionFactory jetzt, vorher war sie in der main.

Kann mir irgendjemand sagen wie das im allgemeinen gemacht wird, oder hat jemand kleines CodeBeispiel?

Vielen Dank schon mal im Voraus!

- Thomas
 

Mean

Aktives Mitglied
Hallo Thomas,

k.A., ob ich dich 100%ig richtig verstanden habe, aber du mußt eigentlich nur einen Button anlegen, der auf eine Methode in deiner, zur Seite gehörigen, Bean zugreift:

Code:
<h:commandButton action="#{Bean.methode()}" value="Speichern" />

und aus der Methode methode greifst du dann auf die Speichern-Methode zu, die du schon hast. Als Paramter übergibst du einfach das zu speichernde Objekt.

Grüße,

Dirk[/code]
 

Shoodan

Mitglied
in meiner Klasse habe ich aber nur setter und getter Methoden. soll eine reine PersistenzKlasse bleiben.

googlen heute brachte mich auf HibernateUtil-Klassen, die das mit der sessionfactory machen und DAO Klassen die für allgemeine Persistenzmethoden zuständig sind.

solche code-beispiele bräuchte ich, denn ich hätte ganz gerne eine schon für gut gefundenene und getestete Vorgehensweise:)

- thomas
 

Shoodan

Mitglied
Klasse: Test

package data;

import hibernateStuff.HibernateUtil;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.SessionFactory;

import java.io.Serializable;

@Entity
@Table(name="test")
public class Test implements Serializable
{

private int id;
private int i;
//konstruktor
public Test(){
}

/** Der Primary Key. */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

/** Der Name der Spalte */
@Column(name = "i")
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}

}

HandlerKlasse dazu

package handler;

import data.Test;
import hibernateStuff.HibernateUtil;

//import hibernateStuff.HibernateUtil;
public class TestHandler {

public Test test;

public TestHandler(){
}

public Test getTest() {
return test;
}

public void setTest(Test test) {
this.test = test;
}
public String save() {

HibernateUtil hUtil = new HibernateUtil();
hUtil.saveObjectToDatabase(test);
return "success";
}


}


die jsp-seite:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>Berechnung eines Flächeninhaltes</title>
</head>

<body>
<f:view>
<h:messages>
<h3>JSF-Beispielanwendung:</h3>





<h:form id="inputForm">

Bitte geben Sie eine Seitenlänge ein:
<h:inputText value="#{TestHandler.test.i}" />
<h:commandButton value="Berechnen" action="#{TestHandler.save}" />

</h:form>
</h:messages>

</f:view>
</body>
</html>




sobald ich auf den button klicke kommt folgende exception:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /eingabe.jsp(18,2) '#{TestHandler.test.i}' Target Unreachable, 'test' returned null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)


root cause

org.apache.jasper.el.JspPropertyNotFoundException: /eingabe.jsp(18,2) '#{TestHandler.test.i}' Target Unreachable, 'test' returned null
org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:61)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:129)
javax.faces.component.UIInput.getConvertedValue(UIInput.java:943)
javax.faces.component.UIInput.validate(UIInput.java:868)
javax.faces.component.UIInput.executeValidate(UIInput.java:1078)
javax.faces.component.UIInput.processValidators(UIInput.java:670)
javax.faces.component.UIForm.processValidators(UIForm.java:229)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:672)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.18



warum ist test unreachable???


thx

-Thomas
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben