tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
2532
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MadM MadM ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Ort
    Darmstadt
    Beiträge
    39
    Mahlzeit,

    in meinem derzeitigen Projekt kommen Hibernate und Struts zum Einsatz. Beide Technologien sind Neuland für mich.
    Ich suche nach einer guten Lösung für den Weg von der Datenbank zur Weboberfläche (Formulare).
    Eine (einfache) Möglichkeit wäre ja, in der Form-Bean ein Hibernate-POJO zu verwenden und auf dessen Getter und Setter zu verweisen/weiterzuleiten. Allerdings würde man auf diese Weise ja die View vom Model abhängig machen, was dem MVC-Prinzip von Struts wiederspricht.
    Die andere Möglich ist die Verwendung von DTOs, wobei das i.d.R. nur Rumkopieren von Werten bedeutet aber die Trennung besser wahrt. Andererseits sind hier Konvertierungen (z.B. String aus Formular <--> Date aus POJO) besser unterzubringen.
    Was ist die bessere Wahl? Gibt es Patterns dafür?

    Gruß

    MadM
    Geändert von MadM (27.03.06 um 15:50 Uhr)
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Schau doch einfach mal wie die Jungs vom Springframework das gemacht haben:
    http://cvs.sourceforge.net/viewcvs.p...les/jpetstore/

    Gruss Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    MadM MadM ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Ort
    Darmstadt
    Beiträge
    39
    Hi Tom,

    danke für die schnelle Antwort, doch leider weiss ich nicht so recht was ich mir aus dem Beispiel ableiten soll.

    Meinst du die Verwendung der DTOs in den Forms-Beans und den Zugriff in den JSPs über property="<name>.<attribut>" ?
    Das wäre sicher einfacher als in den Forms-Beans Getter und Setter für jedes einzelne Attribut des DTO vorzusehen, wäre aber vom Prinzip her das selbe, wenn man für das Beispiel annimmt DTO=Hibernate POJO

    Gruß

    ein etwas verwirrter
    MadM
    Geändert von MadM (27.03.06 um 16:50 Uhr)
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Ich wuerde das so machen:
    spezifische ActionsForms pro Domain Objekt mit entsprechender Validierung.
    (-> Stubs kann man beispielsweise aus POJO's generieren)
    Jede ActionForm kennt das dazugehoerige Domain Object. Innerhalb einer Struts Action wird an eine Service Facade delegiert. Diese ServiceFacade bietet Methoden
    zum anlegen, aendern, auslesen und loeschen von Entitaeten an (Bietet entsprechende
    Methoden fuer die benoetigten Use Cases an, also Bestellung anlegen, Kunde anlegen, etc.). Die ServiceFacade delegiert an eine entsprechende Service Implementierung.
    Die ServiceImplementierung interagiert dann ueber DAOs (DataAccessObjects) mit Hibernate. Die

    Gruss Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    MadM MadM ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Ort
    Darmstadt
    Beiträge
    39
    Hi Thomas,

    danke für den Tipp, werde versuchen das so umzusetzen.
    Ein Problem konnte ich bisher noch nicht lösen, da mir der richtige Ansatz fehlt.

    Situation:
    Mein Hibernate-POJO Projekt enthält u.A. ein Feld beginn und ende vom Typ java.util.Date. In meiner Formbean verwende ich eine Instanz von Projekt.
    Das Problem ist nun, dass aus dem Formular in der entsprechenden JSP-Seite ja kein Date sondern ein String zurückkommt, so dass bei Auruf des Setters für eines der beiden Felder ein Fehler (illegal argument) verursacht wird.
    Die Frage ist nun, an welcher Stelle ich die Umwandlung vornehmen muss, damit der String aus dem Formular als Date in das POJO geschrieben werden kann.

    Gruß

    Matthias
     

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Such mal hier nach java.util.Date:
    http://www.theserverside.com/news/th...hread_id=28894

    Gruss Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    MadM MadM ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Ort
    Darmstadt
    Beiträge
    39
    ..und wieder geht ein Dank an den Gradnmaster of Java
    Ich ahbe das Ganze als Struts-Plugin installiert, falls es jemanden interessiert hier der Code:

    struts-config.xml
    Code :
    1
    2
    3
    
    [...]
    <plug-in className="tools.Converter" />
    [...]

    Converter.java
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    package tools;
     
    import java.sql.Date;
    import java.util.Locale;
     
    import javax.servlet.ServletException;
     
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.SqlDateLocaleConverter;
    import org.apache.log4j.Logger;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.action.PlugIn;
    import org.apache.struts.config.ModuleConfig;
     
    public class Converter implements PlugIn {
     
        private static final Logger logger = Logger.getLogger(Converter.class);
     
        public Converter() {
            super();        
        }
     
        
        public void destroy() {        
        }
     
        public void init(ActionServlet arg0, ModuleConfig arg1)
                throws ServletException {
            logger.info("BEGIN INIT CONVERTER");        
             Locale locale = Locale.getDefault();
             [B]SqlDateLocaleConverter converter = new SqlDateLocaleConverter(locale, "yyyy-MM-dd", false);         
             ConvertUtils.register(converter, Date.class); [/B]       
             logger.info("END INIT CONVERTER");
            
     
        }
    }
     

Ähnliche Themen

  1. JBOSS Security, Struts, EJBs und Hibernate
    Von studentxxx im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 6
    Letzter Beitrag: 31.08.07, 16:29
  2. Hibernate, Struts + Tomcat - alte Daten werden angezeigt
    Von MadM im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 26.06.06, 11:15
  3. Antworten: 0
    Letzter Beitrag: 13.10.05, 12:18
  4. Flash-Button auf JSP-Seite verwenden (mit Struts)
    Von Winz im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 13.10.05, 09:29
  5. Struts / Hibernate Pattern
    Von e.motion im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 8
    Letzter Beitrag: 14.02.05, 18:55