Alternatives au JSP pour la couche de vue MVC du printemps

je cherche à créer une nouvelle application à partir de zéro et je vais probablement utiliser MVC printemps et peut-être flux Web printemps. Les projets créés par Spring Roo utilisent Spring MVC et optionnellement Web Flow. Quelles sont les bonnes alternatives pour la technologie view, ou est-ce que JSP avec Spring et JSTL taglibs et jQuery est la voie à suivre?

74
demandé sur naXa 2010-04-30 21:59:58

16 réponses

dans L'API Java EE standard, la seule alternative à JSP est Facelets . Jusqu'à présent (2010) JSF est le seul MVC cadre qui soutient nativement les Facelets.

ressort MVC supporte hors de la boîte seulement JSP, mais il a un configurable view resolver qui vous permet d'utiliser Facelets de toute façon. D'autres candiats sont des cadres de templage tiers tels que Velocity , Freemarker , et Thymeleaf qui peut être configuré comme une technologie de vue pour MVC ressort. La documentation de ressort a exemples d'intégration avec la vitesse et Freemarker.

47
répondu BalusC 2017-10-20 18:35:02

j'ai récemment découvert Thymeleaf .

il semble être un remplacement complet pour JSPs et a l'intégration avec ressort MVC. L'approche de modèle ressemble plus au HTML et peut être plus acceptable pour vos concepteurs D'UI. Ils ont une petite écriture qui compare les deux solutions côte à côte.

50
répondu Shawn Sherwood 2017-01-17 15:44:02

j'ai récemment commencé à aller avec HTML simple et jQuery pour la présentation avec le printemps MVC seulement la création d'une vue JSON.

jusqu'à présent, tout va très bien et même si je dois faire le travail javascript, cela rend l'interaction avec mon concepteur beaucoup plus facile et les délais d'exécution plus rapides quand il a des changements parce que je n'ai pas à convertir son HTML dans mon JSP. Le jury est toujours sur la maintenance globale du site.

17
répondu digitaljoel 2012-01-23 19:36:07

vous pouvez avoir autant de technologies de vue que vous voulez sur MVC printemps. J'ai freemarker et JSP view resolvers. Quand je rencontre une vue qui est trop compliquée dans Freemarker (ou juste plus convaincante dans JSP) je crée une vue JSP. Par exemple, Spring JSLT fait un excellent travail des formulaires de manipulation. Pour cela j'utilise des vues JSP, mais pour presque tout le reste j'ai des vues freemarker.

consultez la documentation MVC du printemps pour savoir comment configurer plusieurs vues résolveurs, essentiellement:

<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>
15
répondu monzonj 2011-03-03 16:29:57

Documentation des ressorts suggère aussi Freemarker . Freemarker est (autant que je peux dire) rapide et a une certaine intégration de caractéristiques de ressort comme la reliure.

15
répondu rompetroll 2015-04-17 09:57:01

ressort MVC offre l'intégration avec de nombreuses différentes technologies de vue . Je recommande d'utiliser FreeMarker ou Velocity .

9
répondu yfrangi 2015-04-17 10:00:57

bien qu'il s'agisse d'une vieille question, j'ai pensé offrir une alternative prometteuse qui est Scalate .

Scalate est centrale dans la création de modèles d'options. Le seul problème est que Scalate nécessite beaucoup de dépendances (alors qu'il nécessite Scala, il ne nécessite pas que vous écriviez en Scala).

mon préféré actuel est guidon.java qui ont une intégration de printemps.

8
répondu Adam Gent 2012-12-06 14:05:59

(ma réponse précédente était mal datée ici.) Freemarker est au moins aussi bon que Velocity. Mais Thymeleaf semble encore plus convaincant, avec la disposition-dialecte, il peut rendre les cadres de modèle comme sitemesh et les tuiles inutile. Pour JSF, la critique de Thoughtworks semble valable:

nous continuons à voir des équipes rencontrer des problèmes en utilisant JSF - JavaServer Faces - et nous vous recommandons d'éviter cette technologie. Equipe semblent choisir JSF parce qu'il s'agit d'une norme Java EE sans vraiment évaluer si le modèle de programmation leur convient. Nous pensons que JSF est imparfait parce que son modèle de programmation encourage l'utilisation de ses propres abstractions plutôt que d'adopter pleinement le modèle web sous-jacent. JSF, comme ASP.NET webforms, tente de créer des arbres de composants stateful sur le Top HTML markup et le protocole HTTP stateless. Les améliorations dans les JSF 2.0 et 2.2, telles que l'introduction de points de vue apatrides et la promotion de L'EEG, c'est un pas dans la bonne direction, peut-être même une reconnaissance du fait que le modèle original était défectueux, mais nous pensons que c'est un peu trop tard. Plutôt que de gérer la complexité du JSF, nous recommandons aux équipes d'utiliser des cadres simples et de travailler en étroite collaboration avec les technologies web, y compris HTTP, HTML et CSS.

5
répondu Nathan Hughes 2015-06-08 15:31:33

j'utilise Bandes et Ressort. Les rayures restent hors de votre chemin la plupart du temps, mais augmente le printemps bien quand vous en avez besoin je trouve.

3
répondu Quotidian 2010-04-30 18:10:04

j'utilise velocity and Spring MVC. De plus, j'héberge mon application sur Googles App engine et je n'ai aucun problème.

3
répondu Athens Holloway 2010-04-30 18:21:20

vous pouvez également utiliser Angular (client side framework) pour votre couche de vue en MVC printemps.

3
répondu ddsultan 2018-03-05 00:01:09

mes suggestions ne sont pas de regarder le cadre de vue comme décrit dans la plupart des ci-dessus qui n'a pas été écrit sur le dessus de printemps MVC puisque vous finirez par des questions comme postbacks ce qui signifie que vous ne serez pas en mesure de soumettre les données de cette technologie de vue et obtenir la réponse de sever. exemple comme la validation, éditez la soumission de données qui se rafraîchit avec les données du serveur ne fonctionnera pas .

c'est parce que Java haricots dans certains ci-dessus de la technologie de vue ne utilisez le cycle de vie des conteneurs à ressort. Vous ne pourrez les utiliser que pour les requêtes par exemple stateless. exemple avec JSF vous ne pourrez pas utiliser postbacks car jsf postbacks ne fonctionne que si vous utilisez JSF life cycle et si vous utilisez spring framework JSF view resolver avec spring mvc vous ne pourrez pas faire postback donc vous devez remplacer JSF servlet controller au lieu de spring mvc controller .

encore une fois puisque votre exigence de projet complet n'est pas claire et si vous voulez Non publication exigence, vous pouvez utiliser certains des choix ci-dessus .

un exemple de la technologie de vue qui est écrit sur le dessus MVC printemps og est ZK framework basé ZK mvc dans lequel vous pouvez étendre vos contrôleurs MVC printemps à partir de ZK Genericforwardcomoser pour gérer les événements. Vous pouvez toujours utiliser Spring pour gérer le cycle de vie de ces contrôleurs en utilisant Spring framework.

vous pouvez google pour trouver d'autres produits similaires .

Cette revue est basée sur la conception de haut niveau du cycle de vie du cadre.

Tout le meilleur !!!

2
répondu Agassis 2012-09-27 14:32:49

je pense Tuiles pourrait vous aider.

Vous pouvez définir des modèles et utiliser JSTL à l'intérieur.

2
répondu amanas 2015-04-17 10:05:45

Vous pouvez exécuter Facelets ontop de Spring Webflow

1
répondu Tommy B 2012-10-19 00:43:19

et phpj ?

il peut être utilisé comme modèles de vue ou vous pouvez faire votre système de serveur web à partir de zéro

j'ai fait phpj parce que je n'aime pas avoir à mettre à jour mon application et le charger avec tomcat tout le temps, de sorte que je peux utiliser des emplacements statiques pour mon application web en utilisant apache-comme des configurations

1
répondu larsig 2013-07-23 15:34:54

Apache Velocity une bonne alternative à Java Server Pages.

1
répondu Harshana 2015-06-06 07:16:52