Bibliothek zum Generieren von CRUD-Seiten in Java-Webanwendungen

Ich habe kürzlich ein bisschen mit Spring Roo gespielt und ich mag die Funktion, die automatisch CRUD-Seiten für bestimmte Objekte generiert. In all den Jahren, in denen ich JVM-basierte Webanwendungen entwickelt habe, habe ich mich beim Schreiben und Umschreiben von Listen, Hinzufügen, Entfernen und Bearbeiten von Funktionen in der Benutzeroberfläche wiedergefunden, und ich bin überrascht, dass mir so etwas noch nie begegnet ist.

Ich würde Roo jedoch aus mehreren Gründen nicht für ein richtiges Projekt verwenden wollen, aber im Grunde, weil ich es dumm finde, mehrere Megabyte XML, AspectJ und andere "Magie" zu generieren, um etwas zu tun, das leicht in Java ausgedrückt werden könnte !

Es hat jedoch meinen Appetit auf etwas geweckt, das diese CRUD-JSP-Generation für ein bestimmtes Objekt ausführen kann. Dies könnte zur Laufzeit annotationsgesteuert oder ein Codegenerierungstool sein, es macht mir nichts aus, solange es Zeit spart. Kann jemand eine solche Bibliothek empfehlen?

Wenn Ihr Fokus auf JavaEE (jsf-facelets) und nicht auf Spring-Jsp lag, würde ich JBoss Forge vorschlagen , aber angesichts Ihrer Anforderungen fällt mir nur Spring Roo ein :(
Spring ist keine Voraussetzung, ich suche nur nach einer JSP-Technologie. Ich habe mir Forge angesehen, aber es scheint im Grunde dasselbe zu sein wie Roo mit der Befehlszeilenschnittstelle und ist nicht das, wonach ich suche. Danke trotzdem!
In Netbeans gibt es die Möglichkeit, Crud-Seiten aus der Datenbank zu erstellen. ich habe das auf nb 8.1 gemacht. und für rad verwenden Sie die Cuba-Plattform .

Antworten (1)

Vaadin

Das Vaadin- Framework ( Wikipedia ) ist ein Servlet -basiertes Tool zum On-the-Fly-Generieren der gesamten GUI Ihrer Web-App. Als „Single-Page-Application“ werden alle „Bildschirme“/Ansichten Ihrer App dynamisch in den Browser geladen. Sie schreiben nur reines Java, um es serverseitig in einem Servlet-Container wie Apache Tomcat oder Eclipse Jetty auszuführen . Sie schreiben Java-Code, um ein Feld, eine Beschriftung, eine Schaltfläche und dergleichen zu erstellen. Vaadin übernimmt automatisch die Erstellung des HTML/CSS/JavaScript, das auf der Client-Seite (im Browser) erforderlich ist, um Ihre Java-definierten Widgets wiederzugeben.

Vaadin enthält ein eigenes Datenmodell . Dieses Datenmodell speist die containerbasierten Widgets Table und Grid zur Darstellung von Datenzeilen und -spalten.

Solche Daten können in Layouts bearbeitet werden, in denen Felder an Datenelemente gebunden sind . Vaadin bietet Ihnen die Möglichkeit, grundlegende CRUD-Formulare für Sie generieren zu lassen, oder Sie können die Zügel übernehmen, um Ihr eigenes benutzerdefiniertes, komplexeres Layout zu erstellen.

Siehe diese Antwort und diese Antwort von mir in StackOverflow.com für weitere Diskussionen. The Vaadin.com bietet eine Fülle von Einführungsmaterial, einschließlich The Book Of Vaadin .

Kontrapunkt

Wenn Sie mit der JSP-Technologie verheiratet sind , ignorieren Sie diese Antwort. Vaadin macht JSPs in einer Webanwendung vollständig überflüssig.

Wenn Sie die volle Kontrolle über HTML, CSS und JavaScript in Ihrer Webanwendung übernehmen möchten , ignorieren Sie diese Antwort. Während Sie HTML, CSS und JavaScript in einer Vaadin-App optimieren können , ist dies nicht die Norm. Der zentrale Zweck von Vaadin besteht darin, die Details dieser Webtechnologien zu verschleiern. Normalerweise erledigen Sie in einer Vaadin-App 100 % (oder 99 %) Ihrer Arbeit in wunderschönem reinem Java.

Das sieht interessant aus und hat eine umfassende Dokumentation, aber wenn ich mich nicht sehr irre, müsste ich immer noch alle UI-Komponenten in Java deklarieren und sie manuell an mein Domänenmodell binden. Ich hatte idealerweise auf etwas Klügeres gehofft, das die UI-Steuerelemente dynamisch aus dem Domänenmodell ableiten würde. Danke für den Vorschlag, aber es sieht immer noch nach einem großartigen Rahmen aus.
Hier finden Sie ein Tutorial, wie Sie dies mit Spring Boot, Spring Data und Vaadin tun können. Erfordert immer noch etwas Code - aber der CRUD-Teil ist für Sie erledigt: spring.io/guides/gs/crud-with-vaadin