Ich möchte eine neue App von Grund auf neu erstellen und werde wahrscheinlich Spring MVC und möglicherweise Spring Web Flow verwenden. Die von Spring Roo erstellten Projekte verwenden Spring MVC und optional Web Flow. Was sind einige gute Alternativen für die Ansichtstechnologie, oder ist JSP mit Spring- und JSTL-Taglibs und jQuery der richtige Weg?
java
jsp
spring-mvc
digitaljoel
quelle
quelle
Antworten:
In der Standard-Java EE-API ist Facelets die einzige Alternative zu JSP . Bisher (2010) ist JSF das einzige MVC-Framework, das Facelets nativ unterstützt.
Spring MVC unterstützt standardmäßig nur JSP, verfügt jedoch über einen konfigurierbaren Ansichtsauflöser , mit dem Sie Facelets trotzdem verwenden können. Andere candiates sind 3rd - Party - Templat - Frameworks wie Geschwindigkeit , Freemarker und Thymeleaf die als View - Technologie für Spring MVC konfiguriert werden können. Die Spring-Dokumentation enthält Integrationsbeispiele für Velocity und Freemarker.
quelle
Ich habe kürzlich Thymeleaf entdeckt .
Es scheint ein vollständiger Ersatz für JSPs zu sein und ist in Spring MVC integriert. Der Vorlagenansatz ähnelt eher HTML und ist für Ihre UI-Designer möglicherweise schmackhafter. Sie haben eine kleine Beschreibung, in der die beiden Lösungen nebeneinander verglichen werden .
quelle
Ich habe vor kurzem angefangen, mit einfachem HTML und jQuery für die Präsentation mit Spring MVC zu arbeiten, wobei nur eine JSON-Ansicht erstellt wurde.
Bisher läuft es recht gut und obwohl ich die Javascript-Arbeit erledigen muss, erleichtert es die Interaktion mit meinem Designer und beschleunigt die Bearbeitungszeit, wenn er Änderungen hat, da ich sein HTML nicht in meine JSP konvertieren muss. Die Jury ist immer noch nicht über die allgemeine Wartbarkeit der Website informiert.
quelle
In Spring MVC können Sie so viele Ansichtstechnologien verwenden, wie Sie möchten. Ich habe FreeMarker- und JSP-Ansichtsauflöser. Wenn ich auf eine Ansicht stoße, die in FreeMarker zu kompliziert ist (oder in JSP einfach praktischer ist), erstelle ich eine JSP-Ansicht. Zum Beispiel eignet sich Spring mit JSTL hervorragend für die Bearbeitung von Formularen. Dafür verwende ich JSP-Ansichten, aber für so ziemlich alles andere habe ich FreeMarker-Ansichten.
In der Spring MVC-Dokumentation erfahren Sie, wie Sie mehrere Ansichtsauflöser konfigurieren.
<bean name="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="cache" value="true"/> <property name="prefix" value=""/> <property name="suffix" value=".ftl"/> <property name="order" value="1"/> <!--NOTICE THE ORDER--> </bean> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> <property name="order" value="2"/> <!--NOTICE THE ORDER--> </bean>
quelle
Die Dokumentation zu Springs 3 schlägt auch FreeMarker vor . Freemarker ist (soweit ich das beurteilen kann) schnell und hat einige Integrationsfunktionen von Spring wie das Binden.
quelle
Spring MVC bietet die Integration mit vielen verschiedenen Ansichtstechnologien . Ich würde empfehlen, FreeMarker oder Velocity zu verwenden .
quelle
Obwohl dies eine alte Frage ist, dachte ich, ich würde eine aufstrebende Alternative anbieten, nämlich Scalate .
Scalate ist ein Kraftpaket für Vorlagenoptionen. Das einzige Problem ist, dass Scalate viele Abhängigkeiten erfordert (während es Scala erfordert, müssen Sie nicht in Scala schreiben).
Mein aktueller Favorit ist Handlebars.java mit Spring-Integration.
quelle
(Meine vorherige Antwort wurde hier schlecht datiert.) Freemarker ist mindestens so gut wie Velocity. Aber Thymeleaf sieht noch überzeugender aus. Zusammen mit dem Layout-Dialekt können Vorlagen-Frameworks wie Sitemesh und Kacheln unnötig werden. Für JSF scheint die Kritik von Thoughtworks gültig zu sein:
quelle
Ich benutze Stripes und Spring zusammen. Streifen bleiben dir die meiste Zeit aus dem Weg, aber Augments sind schön, wenn du sie brauchst, finde ich.
quelle
Ich benutze Geschwindigkeit und Feder MVC. Außerdem hoste ich meine Anwendung auf der Googles App Engine und habe keine Probleme.
quelle
Sie können Angular (clientseitiges Framework) auch für Ihre Ansichtsebene in Spring MVC verwenden.
quelle
Mein Vorschlag ist, nicht das Ansichts-Framework zu betrachten, wie es in den meisten der oben genannten beschrieben wurde, die nicht über Spring MVC geschrieben wurden, da Sie Probleme wie Postbacks haben, was bedeutet, dass Sie die Daten dieser Ansichtstechnologie nicht übermitteln können und bekomme die Antwort von Sever zurück. Beispiel wie Validierung: Bearbeiten Sie die Datenübermittlung, die mit Daten vom Server aktualisiert wird.
Dies liegt daran, dass Java-Beans in einigen der oben genannten Technologien den Spring-Container-Lebenszyklus nicht verwenden. Sie können sie nur für zustandslose reine Ansichtsbeispiele verwenden. Beispiel: Mit JSF können Sie keine Postbacks verwenden, da jsf-Postbacks nur funktionieren, wenn Sie den jsf-Lebenszyklus verwenden. Wenn Sie den JSF-View-Resolver von Spring Framework mit spring mvc verwenden, können Sie kein Postback durchführen, sodass Sie jsf ersetzen müssen Servlet-Controller anstelle von Feder-MVC-Controller.
Da Ihre vollständige Projektanforderung nicht klar ist und Sie keine Postback-Anforderung wünschen, können Sie einige der oben genannten Optionen verwenden.
Eine beispielhafte Ansichtstechnologie, die oben auf Spring MVC geschrieben ist, ist ZK Framework-basiertes ZK MVC, in dem Sie Ihre Spring MVC-Controller von ZK GenericForwardComposer aus erweitern können, um Ereignisse zu verarbeiten. Sie können Spring jederzeit verwenden, um den Lebenszyklus dieser Controller mithilfe des Spring-Frameworks zu verwalten.
Sie können googeln, um ähnliche andere Produkte zu finden.
Diese Überprüfung basiert auf der allgemeinen Gestaltung des Framework-Lebenszyklus.
Alles Gute !!!
quelle
Ich denke, Tiles könnte dir helfen.
Sie können Vorlagen definieren und JSTL verwenden.
quelle
Sie können Facelets auf Spring Webflow ausführen
quelle
Was ist mit phpj ?
Es kann als Ansichtsvorlage verwendet werden oder Sie können Ihr Webserversystem von Grund auf neu erstellen
Ich habe phpj erstellt, weil ich meine Anwendung nicht ständig aktualisieren und mit Tomcat laden muss, damit ich statische Speicherorte für meine Webanwendung mit apacheähnlichen Konfigurationen verwenden kann
quelle
Apache Velocity ist eine gute Alternative zu Java Server Pages.
quelle