Persistenz aus JSF-Seite ansteuern

dataframe

Mitglied
Hallo Java-Forum-Community,

Ich arbeite aktuell an einem Blogging - Service, welcher als Benutzeroberflächenframework / JSF Primefaces nutzt. Da ich aus der Mobilentwicklung (Android & iOS) komme bin ich mit den best practices der Webentwicklung nicht vertraut, sodass sich meine Frage rund um das Verständnis dieser dreht:

UseCase:
Als Einstiegspunkt in die Webapplikation biete ich dem Nutzer eine Webseite auf dieser er zwischen "Blogeintrag erstellen" und "Blogeinträge anschauen" wählen kann. Wenn der Nutzer einen Blogeintrag erstellt wird er auf die dementsprechende Seite weitergeleitet, auf dieser Ihm einige Eingabefelder und ein WYSIWYG-Editor angeboten werden. Nun möchte ich, sobald der Nutzer auf den Submit-Button drückt die Persistierung mittels Hibernate ansteuern, sodass der Eintrag in die dahinterliegende MYSQL-DB gespeichert wird.

Nochmal in Kurzform: User besucht Webseite -> erstellt Eintrag -> Eintrag soll als Entität in Datenbank gespeichert werden.

Frage: Wie stelle ich es am geschicktesten an jeden Blogeintrag in die Datenbank zu speichern?
Ich möchte hierbei den größten Nutzen aus den aktuell verwendeten Technologien ziehen (also keine komischen XML-Mappings). Hierzu ein Listing der im Einsatz befindlichen Technologien:

  • Java 6
  • Apache Tomcat 7
  • Majorra -> Primefaces 3.3
  • Hibernate 4
  • MySQL 5.5

Ich bedanke mich im Vorraus

P.S.: Webseiten, eBooks oder weitere Denkanstöße wären ausreichend.
 
Zuletzt bearbeitet:

oldshoe

Bekanntes Mitglied
Ich würde EJBs verwenden. Deine JSP-SEite ruft beim Speichern des Blog-Eintrags eine Bean auf, der die Inhalte des Blog-Eintrags übergeben werden. Dann kannst du mit dem String in der Bean alles machen.

Aber was sagen die Experten?
 
M

maki

Gast
Hi,

JSF, Hibernate, aber auch EJBs und Java WebApps im allgemeinen sind ziemlich komplexe Themen.

Wieviel Erfahrung/theoretisches Wissen hast du denn bereits?
Welche Gründe haben dich dazu bewegt Java, JSF & Hibernate auszuwählen?
 

dataframe

Mitglied
Hi,

JSF, Hibernate, aber auch EJBs und Java WebApps im allgemeinen sind ziemlich komplexe Themen.

Wieviel Erfahrung/theoretisches Wissen hast du denn bereits?
Welche Gründe haben dich dazu bewegt Java, JSF & Hibernate auszuwählen?

Ich bin bereits seit einiger Zeit als Entwickler tätig, jedoch nicht im Bereich der Webentwicklung. Ich habe diese Technologien auferlegt bekommen, da diese auch von meinem Arbeitgeber im großen Stil verwendet werden. Dies soll nur eine Einarbeitung in die Themengebiete sein.

Schau dir mal die Online-Referenz von MyFaces an:
JSFAtWork, JSF 2.0 und Apache MyFaces

Das Beispiel Projekt mygourmet (ist mit spring) - paßt ganz gut zu deinem Use-Case.

Grüße

Werde ich mir ansehen, Danke dafür.
 
M

maki

Gast
Nun, das ist ein sehr guter Grund :D

Würde dir empfehlen nicht zu versuchen alles auf einmal erlernen zu wollen, Hiebrnate kann man komplett ohne JSF erlernen, umgekehrt genauso.

Für Hibernate zB. empfehle ich die Hibernate Doku ;)

Bin mir nicht sicher, ob JSF mit Hibernate/JPA aber ohne EJBs wirklich einfacher ist als mit EJBs...
 

dataframe

Mitglied
Nun, das ist ein sehr guter Grund :D

Würde dir empfehlen nicht zu versuchen alles auf einmal erlernen zu wollen, Hiebrnate kann man komplett ohne JSF erlernen, umgekehrt genauso.

Für Hibernate zB. empfehle ich die Hibernate Doku ;)

Bin mir nicht sicher, ob JSF mit Hibernate/JPA aber ohne EJBs wirklich einfacher ist als mit EJBs...

Danke für den Beitrag. Es hapert lediglich, wie ich feststellen musste, an meinen mangelnden JSF Kenntnissen. Die anderen Technologien stellen kein Problem dar, da Ich diese auch schon in anderen Projekten eingesetzt hab.

Dann kann der Thread hiermit beendet werden. Nach ner gewissen Zeit vor der IDE sieht man die Probleme vor dem Rechner nicht mehr.
 

chrisbad

Mitglied
Howdy,

Du muss eine ManagedBean für deinen View (jsp, xhtml) schreiben (einfachster Weg).
In deinem View kannst du dann per Expression Language auf deine ManagedBean zugreifen

In einem DataTable oder ähnlichen kannst du dann mit value="#{myManagedBean.blogEntries}" darauf zugreifen...

Java:
@ManagedBean
public class MyManagedBean {

private List<BlogEintrag> blogEntries;

private EntityManagerFactory emf = Persistence.getEntityManagerFactory();
private EntityManager           em;

public classMyManagedBean() {
}

public List<BlogBeitrag> getBlogEntries(){
em = emf.createEntityManager();

Query q = "select a from BlogEintrag a";
this.blogEntries = q.getResultList();
em.close;

if (this.blogEntries != null) {
return this.blogEntries;
} else {
this.blogEntries = new ArrayList<BlogEintrag>();
return this.blogEntries;
}

}
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Das ist schlechter Programmierstil - Businesslogik o. Datenbank Abfragen in den getter zu implementieren - zumal JSF den getter 2mal aufruft d.h. gehört sowas in die @PostConstruct- oder in eine action-Methode und warum heißt der Konstruktor anders als die Klasse?
Java:
public class MyManagedBean {
...
public classMyManagedBean() {
}
 

chrisbad

Mitglied
Das ist schlechter Programmierstil - Businesslogik o. Datenbank Abfragen in den getter zu implementieren - zumal JSF den getter 2mal aufruft d.h. gehört sowas in die @PostConstruct- oder in eine action-Methode und warum heißt der Konstruktor anders als die Klasse?
Java:
public class MyManagedBean {
...
public classMyManagedBean() {
}

Konstruktor ist natürlich ein CopyAndPaste-Fehler gewesen.
Hast du ein Beispiel für eine SessionScopedBean, die automatisch bei jedem Aufruf einen DataTable mit aktuellen Daten füllt? Wenn ich die Persistenz in eine Action-Methode packe muss ich die ja jedes Mal explizit aufrufen, stecke ich die in den Getter (um den Reload-Button zu sparen) wird sie auch zweimal aufgerufen. Bin für jeden Hinweis dankbar, ich habe damals keine Möglichkeit gefunden das effektiver zu realisieren.

In vielen Tutorials und Büchern steht das auch so drinn. Nochmal, ich weiß dass das redundant ist.

Chris
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Seite nur aufrufbar machen für eingeloggte User Web Tier 1
J dynamische jsf-seite programmatisch erstellen Web Tier 1
M Seite per Push neuladen Web Tier 2
P JSF Ajax aktualisiert Seite neu Web Tier 2
F JSF selectManyCheckbox Checkbox auf der rechten Seite Web Tier 3
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
A Aufruf eines Servlets auf einer JSP Seite funktioniert nicht Web Tier 10
J Was ist denn eine index.jsp seite ? Web Tier 5
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
Q JSF bei Session-Timeout Weiterleitung auf spezielle Login-Seite Web Tier 15
xehpuk JSF 404 statt 500 bei nicht existenter JSF-Seite Web Tier 7
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
M JSF Umfangreiche Seite strukturieren Web Tier 5
L einfache JSF-Seite wird nicht angezeigt Web Tier 8
R JSF Mit Ajax ganze Seite neu laden Web Tier 2
X Seite wird mit AJAX neu geladen Web Tier 4
R Zugriff auf Session direkt auf JSF-Seite Web Tier 2
B statische Html Seite als response erhalten (Servlet) Web Tier 3
D Auf andere Seite mit GWT Web Tier 2
S HTML Seite als PDF Web Tier 6
J JSP-Seite kann nicht aufgerufen werden Web Tier 14
K Analye einer Seite (Java, JSP, ...) Web Tier 12
I Setten auf der JSF - Seite Web Tier 2
M Ton wiedergabe über jsp-Seite Web Tier 2
G Code in JSF-Seite Web Tier 7
J Hilfe: seite includieren mit IceFaces Web Tier 2
T Template für die ganze Seite Web Tier 6
I JSF Nur max 20 Datensätze anzeigen lassen, dann nächste Seite Web Tier 8
P request.getParameter("name") von Formular auf JSP-Seite leer Web Tier 5
aokai ExterneJS-JSP Seite einbinden Web Tier 2
C navigation auf einer jsp Seite Web Tier 3
F sendError geht nicht richtig, seite leer Web Tier 6
K JSF Seite mit Dateien der Endung *.jsf Web Tier 4
D PreparedStatement: Seite zeigt nichts an Web Tier 7
T Wie feststellen, ob ein Benutzer noch auf meiner Seite ist Web Tier 14
K [gelöst] JSF-Seite wird nicht angezeigt Web Tier 3
H JSF Seite wird plain angezeigt Web Tier 3
P JSP Seite verlassen Web Tier 2
M Authentifizierung über PhaseListener je nach Seite Web Tier 11
M Servlet Submit ergebniss in seite einbauen Web Tier 2
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
V VMware VI "ansteuern" auf dem Richtigen weg? Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben