Best-Practice? Daten über Tier-Grenzen hinweg?

Status
Nicht offen für weitere Antworten.

SnooP

Top Contributor
Moin... - ich hab hier eine Model-2 Anwendung - bzw. bin dabei eine zu entwerfen und bin gerade auf ein Problem gestoßen... bzw. ich weiß nicht genau, wie man das am Sinnvollsten löst.

Ich habe eine noch simulierte Datenbank, die ich über eine db-Layer Klasse ansprechen kann, die entsprechende Methoden bereitstellt über die ich die Daten aus der db ein- und auslesen kann und mir daraus meine eigene Objektstruktur erstelle (mein Modell mit dem ich dann auch arbeiten will). Das sind im Wesentlichen drei oder vier Klassen, die alle voneinander abhängig sind (ne Art Baumstruktur).

Jetzt gibt es ein Login für einen User, welchen ich über ein entsprechendes Business-Delegate löse... sprich ne login-Methode die ich vom Controller aus aufrufe. Das Ergebnis ist das Einloggen des Users im System und die Anzeige von Details (das Modell) für den User auf einer entsprechenden JSP. Diese Details entsprechen exakt den Feldern eines Objekts meines Modells - das Ding ist auch Bean-artig aufgebaut - hat aber noch zusätzliche Methoden.

Sollte ich jetzt für die Anzeige dieser Details eine weitere UserBean erstellen und dort die Informationen kopieren (klingt redundant aber gekappselter) oder kann ich das Objekt mit dem User direkt an die View zurückgeben... - allerdings könnte ich dort direkt auf Methoden des Modells zugreifen - ist auch mist!

Wie geht man also allgemein vor? Ich hab da auch von entsprechenden J2EE-Patterns gehört, dass man generell Beans für die anzuzeigenden Daten in der View erzeugt? Ist das korrekt? ;) Gibt es andere Möglichkeiten - wie kann man das noch lösen?

Edit: Ooooder - da ich ja Struts benutze, sollte ich einfach eine ActionForm für dieses Objekt erstellen und das Objekt per Konstruktor übergeben und die getter/setter an das Modell-Objekt delegieren? Dann hätte ich für die Anzeige die entsprechende ActionForm und für Datenänderungen geht das auch erst über die Form und dann erst zum Modell... klingt das gut? ;)
 

KSG9|sebastian

Top Contributor
Häufig wird es so gemacht dass deine Form dieselben Attribute hat wie dein Model. Über BeanUtils kannst du dann einfach die Werte vom Model in dein ViewObject kopieren.

Code:
//execute-Methode der Actionklasse

MyForm myForm = (MyForm)form;
Data model = getPersistenceService().getDataDAO.findById(1);
BeanUtils.copyProperties(model, myForm);

return mapping.findForward("user-details");

Eigentlich selbsterklärend, myForm = Strutsform = View, model = Model = Daten aus DB oder sonstwoher

Bei non-Struts-Anwendungen werden öffters auch Modelklassen doppelt erstellt und eben für die View noch etwas angepasst.
Noch eine Möglichkeit: Eine Modelklasse (aka ApplicationModel). Diese Klasse ist dein Model. Eine weitere Klasse InteractionModel welche im View benutzt wird. Diese Klasse hat eine Referenz auf ein eigentliches Model (=ApplicationModel).
So, dein Kontroller kennt das InteractionModel. Im Controller kannst du dann Model-View Bindings anlegen. In der View greifst du dann auf die Bindings zu, nicht direkt auf das ApplicationModel. Zum speichern u.s.w. wird nur das ApplicationModel übermittelt, auf keinen Fall das InteractionModel.

Oder du benutzt eben SDOs (Service Data Objects). In der View arbeitst du mit SDO's (simple Beans mit Attributen). Diese SDO's werden an die Services (Geschäftslogik) übermittelt. Im Middletier werden dann Modellklassen mit den SDOs befüllt und gespeichert. Rückgabe ist wieder ein SDO (gleicher Ansatz wie Möglichkeit 1).
 

SnooP

Top Contributor
Genau SDO - des war's und so mach ich's auch grad... und das mit dem Kopieren der Werte hatte ich auch gerade gelesen ;) - danke jedenfalls, das bestätigt dann ja mein durchaus richtiges Gefühl ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Servlet Webservice Konfigurationsdateien Best Practice Allgemeines EE 3
F Authentisierung Best Practise Allgemeines EE 7
S Login-System - Best-Practices? Allgemeines EE 5
looparda JPA Persistenz vom in GUI veränderten Daten-Modell Allgemeines EE 7
S JSP Zwischen zwei Formularen Daten austauschen Allgemeines EE 0
P Daten von HTML and JSP schicken Allgemeines EE 0
D Apache POI Probleme mit Daten(Datum) die aus Formeln entstehen Allgemeines EE 3
C JSF Bestimmte Daten aus der Datenbank anzeigen lassen Allgemeines EE 13
M Daten aus der Resource werden nicht übernommen Allgemeines EE 4
H SQL Daten von Webservice an Client übergeben Allgemeines EE 3
F Servlet Daten im Speicher ablegen Allgemeines EE 3
T Scopes - Daten in JSF-Formular anlegen/bearbeiten, Felder vorbelegen Allgemeines EE 3
A Anfängerfrage: daten in datenbank speichern Allgemeines EE 8
K Daten aus ApplicationServer auf Website darstellen Allgemeines EE 5
C daten von php zu jsp Allgemeines EE 3
MQue Server -> Client zyklische Daten senden Allgemeines EE 20
W Daten mit j2ee aus datenbank abfragen Allgemeines EE 8
M Daten aus JavascriptSeite von Java auswerten lassen Allgemeines EE 3
I Über Formular Daten zu Servlet Allgemeines EE 36
B Session Daten pro User merken Allgemeines EE 9
M EJB Löschen von DB-Daten beim Deployen verhindern Allgemeines EE 2
B JSF - selectOneMenu mit Daten aus faces-config füllen Allgemeines EE 5
J Socket daten darstellen per jsp,servlet Allgemeines EE 2
S Downloadbox auch ohne Daten erzwingen // Content-Disposition Allgemeines EE 6
S Daten in Java schreiben und PHP lesen Allgemeines EE 8
L speichern von daten mittels servlet in xml Allgemeines EE 8
P Tomcat Servlet POST Daten als Array Allgemeines EE 2
V Bean-Daten in JSF-JSP finden Allgemeines EE 3
D Bekomme DAten von einen Jsp nicht in den Tag Handler Allgemeines EE 2
S JSP - geschichtliche Daten Allgemeines EE 4
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
D Abfrage der header daten funktionieren nicht. Allgemeines EE 2
G Daten aus Inputfeldern in Tabelle speichern Allgemeines EE 6
A JSF - Daten in Session speichern Allgemeines EE 2
S Daten in ein Excel file exportieren Allgemeines EE 3
S Post und Get Daten Allgemeines EE 5
clemson Daten aus Email holen Allgemeines EE 4
J Formular aktualisieren-Daten werden erneut in DB geschrieben Allgemeines EE 6
H daten in session speichern Allgemeines EE 8
A Tabstopp-getrennte Daten üb. Webformular in Datenbank laden! Allgemeines EE 2
T Daten aus der Webseite (JSP) als .txt speichern Allgemeines EE 8
M servlet daten einlesen -> hashmap speichern Allgemeines EE 3
M Speicherung von Daten und JSP Allgemeines EE 9

Ähnliche Java Themen

Neue Themen


Oben