Gibt es ein anderes stark integriertes Präsentationsschicht-Tool andere als JSF / JSP für Java EE?

StackOverflow https://stackoverflow.com/questions/296325

Frage

Ich bringe Java EE an der Universität, und dies war eine Frage, ein Student fragte. Ich sagte: „Nein“, aber ich war nicht wirklich sicher, so dachte ich, ich könnte Ihnen mächtige Entwickler fragen. :)

Im Grunde, was ich möchte tun Einheiten verwenden, wenn sie in meinem Zusammenhang waren: Katze Getter, Setter, etc., so wie normale POJOs. wenn ich einen EJB mit seinem Remote-inferface verwende, werden die Entitäten aus der Kern-Infrastruktur entkoppelt, so das ist ein No-Go.

Ich dachte an eine Schicht, wie dies in meiner Masterarbeit zu schreiben. Wenn es eine tote Idee ist, fühlen Sie sich frei, mir zu sagen. Wenn es nicht, mir sagen, wenn Sie einen möchten.

Oder wenn es ein solches Werkzeug ist da draußen, lassen Sie es mich wissen!

War es hilfreich?

Lösung

In einer grundlegenden modernen Welt Java EE-Anwendung, wird es in verschiedene Schichten aufgebrochen, wo Sie 4 Grundlagen haben

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+

Ihre Anwendungen sollten von Anfang an in diese Schicht direkt geteilt werden, so dass Sie zu einem bestimmten Zeitpunkt jede Schicht irgendetwas davon, ohne zu bewirken ersetzen Geschwister Schicht.

Beispiel, wenn Sie JDBC für die Datenzugriffsschicht verwendet wird, sollten Sie in der Lage sein, es ohne Auswirkungen auf die Unternehmen zu delegieren oder Datenbankschicht mit Hibernate zu ersetzen. Der Vorteil der Verwendung einer solchen Architektur ist die Zusammenarbeit mit mehreren Technologien zu ermöglichen. Sie Business-Delegierten (Service-Layer) sollten zu einem Browser, ohne auch nur gehen zu einem Web-Service und übernehmen die Anwendungsverarbeitung in der Lage zu sprechen!

In Bezug auf mit JSP als die Präsentationsschicht, gibt es auch andere Technologien, wie Geschwindigkeit , Freemarker , wie iberck oben erwähnt, Tapisserie hat auch seine eigene Rendering-Engine. Sie können XML + XSLT verwenden auch die Benutzeroberfläche zu machen. Es gibt UI Verwaltung Apps auch wie Fliesen und sitemesh , dass Sie verschiedene Techs als verschiedene Komponenten der Seite integrieren helfen und ihnen zeigen, wie man.

Sie können auch Leichtgewichtler Swing Komponenten geprügelt mit JNLP und eine Desktop-Stil von Unternehmensanwendungen entwickeln. Alles, was wir brauchen, ist eine wenig Phantasie und Client-Anforderung und ich buchstäblich alles als Präsentationsschicht verwenden kann.

Andere Tipps

Ich habe nie versucht es, aber JSF soll besser arbeiten mit Facelets als mit JSP.

IBM hat Artikel über sie.

Ah. Es scheint, Sie didnt meine Frage richtig machen:)

Bohnen gibt es Dienste innerhalb einer Anwendung zur Verfügung zu stellen. Lets sagt, dass ich eine eigenständige Java-Anwendung mit einem Swing-GUI, möge und aus dieser Anwendung entwickeln, würde Ich mag die Entitäten des Oszilloskops auf dem Java EE-App vorhanden verwenden.

Das ist, was würde Ich mag nahtlos an: Einheiten erstellen, ändern sie, so dass sie in einer intuitiven Weise löschen, ohne sich um EntityManager-Ablösung Probleme (wenn Sie ein EJB-Aufruf der Ferne und es geht wieder ein Entitätsobjekt, es wird vor der Rückkehr abgenommen werden).

Ich habe nicht eine Web-Anwendung entwickeln wollen. JSF / JSP und so stark integriert, aber in vielen Umgebungen eine eigenständige Client-Anwendung wäre besser. :)

Sehen Sie Ihren Kommentar in der Mitte, ich sehe, dass Sie einen Desktop-Framework über Java EE wollen.

Die Antwort ist, dass JSF das Servlet API funktioniert über. Und ist auf jeden Fall für das Web, aber warten Sie noch Kater oder Anlegesteg in Ihrer Anwendung einbetten können!

Die Möglichkeiten ziemlich endlos sind, wenn Sie Ihre Business-Schicht gut definiert ist, baut nur eine Schaukel Schicht, die Ihre Business-Funktionen aufruft.

Auch Java EE eine API ist, können einige Teile ersetzt werden, oder Sie können nur einen Teil davon verwenden. Der Behälter ist vor allem für mit EJB, Servlets JNDI und anderen kleinen Sachen zu tun. All dies kann auch durch Desktop-Anwendungen verwendet werden.

Die Antwort hängt von Ihrem spezifischen Ziel und der tatsächlichen Ausführung / Implementierung der Anwendung.

Eine Alternative ist das Spring Framework . Frühling stellt eine eigene Unterstützung Entitätsobjekten zur Ansicht für die Bindung und übernimmt die immer / Einstellung für Sie, sobald es verdrahtet werden. Es gibt viele Federmodule zu wählen, und wählen aus. Spring MVC und Spring Webflow sind beide einen Besuch wert. Spring MVC (IMO) ist einfacher mit zu beginnen, aber Sring Webflow ermöglicht komplexere Navigation und mehr Spielraum-Optionen (zB: Fluss scope). Wenn Sie suchen ein Buch Frühling in Aktion Abstieg ist. Es gibt einige Konzepte müssen Sie (wie Dependency Injection), um angehen Frühling zu verwenden, aber es ist auch die Zeit wert.

Eine weitere Alternative ist Tapestry5 Rahmen. Tapestry ist eine Open-Source-Framework zur Erstellung von dynamischen, robust, hoch skalierbare Web-Anwendungen in Java. Tapestry ergänzt und baut auf dem Standard-Java-Servlet-API, und so funktioniert es in jedem Servlet-Container oder Anwendungsserver.

Tapestry teilt eine Web-Anwendung in einen Satz von Seiten, die jeweils aus Komponenten aufgebaut. Dies stellt eine einheitliche Struktur, so dass der Tapestry Rahmen Verantwortung für zentrale Anliegen anzunehmen, wie URL-Aufbau und Versand, persistenten Zustand Speicher auf dem Client oder auf dem Server, Benutzereingabevalidierung, Lokalisierung / Internationalisierung und Exception Reporting. Tapestry der Entwicklung von Anwendungen beinhaltet einfache HTML-Vorlagen, HTML erstellen und die Vorlagen mit kleinen Mengen von Java-Code zu kombinieren. In Tapisserie, erstellen Sie Ihre Anwendung in Bezug auf Objekte und die Methoden und Eigenschaften dieser Objekte - insbesondere nicht in Bezug auf URLs und Abfrageparameter. Tapestry bringt echte objektorientierte Entwicklung auf Java Web-Anwendungen.

Die Ideologie hinter Bohnen ist heute in jedem richtigen Java-Framework ich kenne. Wie reich erwähnt, Den Frühling ist ein guter / großer Allround-Business-Logik Rahmen (check out sein Klassen jdbc Vorlage, die, die einfach genial sind - ein weiteres großes Juwel ist applicationContext.xml die für view-Ebene ist) und ich persönlich bevorzuge Apache Wicket .

Ich glaube nicht, dass Sie Ihre eigenen machen sollte, sondern einen Rahmen finden, die Ihren Bedürfnissen entspricht und beginnen zu seiner Code-Basis beitragen, dass die Art und Weise Sie mit einer bereits gebildeten Nutzerbasis zu starten bekommen und Ihr Code wird gründlicher bekommen Autor was wiederum Sie einen besseren Programmierer machen.

Grails ( http://www.grails.org/ ) oder griffon ( http://griffon.codehaus.org/ ) von Interesse sein können

String wird von Terrence Parr geschrieben, der Mann hinter ANTLR. Wenn Sie bei der Generierung eine Art von textueller Darstellung von einem Modell interessiert sind, das ist sehr gut.

Ich habe sehr gute Ergebnisse habe benutze es XML, Web-Seiten zu erzeugen und Punkt Dateien aus dem gleichen Modell. Sie schreiben eine Vorlage ein Objekt zu machen. Das Template kann andere Vorlagen-Aufruf (einschließlich rekursiv), basierend auf den Daten aus dem Modell abgeleitet. (Qv Bildfunktionen )

Getter und map.get() ist aufrufbar direkt aus den Vorlagen. Das Modell kann jedes POJO sein. ST ist stolz auf seiner strikten Trennung von der Steuerung, so sehr wenig Logik in den Vorlagen selbst erlaubt ist.

Wie bei all diesen kleinen Sprachen, es ist etwas Neues zu lernen, und kann nicht sein, was Sie suchen. Es war wirklich eine gute Passform für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top