Pregunta Alternativas a JSP para Spring MVC view layer


Estoy buscando crear una nueva aplicación desde cero y probablemente use Spring MVC y posiblemente Spring Web Flow. Los proyectos creados por Spring Roo utilizan Spring MVC y opcionalmente Web Flow. ¿Cuáles son algunas buenas alternativas para ver tecnología, o JSP con Spring y JSTL taglibs y jQuery es el camino a seguir?


73
2018-04-30 17:59


origen


Respuestas:


En la API estándar de Java EE, la única alternativa a JSP es Facelets. Como ahora (2010) JSF es el único framework MVC que soporta nativamente Facelets.

Spring MVC solo admite JSP, pero tiene una configuración ver resolver que te permite usar Facelets de todas formas. Otros candidatos son frameworks de plantillas de terceros, como Velocidad, Freemarkery Thymeleaf que se puede configurar como una tecnología de visualización para Spring MVC. La documentación de primavera tiene ejemplos de integración con Velocity y Freemarker.


47
2018-04-30 18:26



Descubrí recientemente Thymeleaf.

Parece ser un reemplazo completo para JSP y tiene integración con Spring MVC. El enfoque de la plantilla se parece más al HTML y puede ser más apetecible para los diseñadores de UI. Tienen un pequeño artículo que compara los dos soluciones lado a lado.


50
2018-06-13 18:51



Recientemente comencé a usar HTML sin formato y jQuery para la presentación con Spring MVC solo creando una vista JSON.

Hasta ahora todo está yendo bastante bien y, aunque tengo que hacer el trabajo de javascript, la interacción con el diseñador es mucho más sencilla y los tiempos de respuesta son más rápidos cuando tiene cambios porque no tengo que convertir su HTML en mi JSP. El jurado todavía está deliberando sobre la mantenibilidad general del sitio.


17
2018-01-23 19:36



Puede tener tantas tecnologías de visualización como desee en Spring MVC. Tengo resolución de marcadores freemarker y JSP. Cuando me encuentro con una visión que es demasiado complicada en Freemarker (o simplemente más conveniente en JSP) creo una vista JSP. Por ejemplo, Spring JSLT hace un excelente trabajo en el manejo de formularios. Para eso uso vistas JSP, pero para casi todo lo demás tengo vistas freemarker.

Eche un vistazo a la documentación de Spring MVC para ver cómo configurar varios resolutores de vistas, básicamente:

<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
2018-03-03 16:29



Documentación de resortes también sugiere Freemarker. Freemarker es (por lo que puedo decir) rápido y tiene algunas características de integración de Spring como vinculante.


15
2018-04-30 19:55



Spring MVC proporciona integración con muchos diferentes ver tecnologías. Yo recomendaría usar FreeMarker o Velocidad.


9
2018-04-30 19:50



Si bien esta es una vieja pregunta, pensé que ofrecería una alternativa prometedora que es Escalar.

Scalate es una fuente de poder en las opciones de plantillas. La única probabilidad es que Scalate requiere muchas dependencias (mientras que requiere Scala, no requiere que escriba en Scala).

Mi favorito actual es sin embargo Handlebars.java que tiene integración de primavera.


8
2018-01-23 18:40



(Mi respuesta anterior estaba saliendo mal fechada aquí). Freemarker es al menos tan bueno como Velocity. Pero Thymeleaf se ve aún más convincente, junto con el dialecto de diseño puede hacer innecesarios los marcos de plantilla como sitemesh y tiles. Para JSF, La crítica de Thoughtworks parece válido:

Seguimos viendo que los equipos tienen problemas al usar JSF - JavaServer Faces, y le recomendamos que evite esta tecnología. Los equipos parecen elegir JSF porque es un estándar Java EE sin evaluar realmente si el modelo de programación les conviene. Creemos que JSF es defectuoso porque su modelo de programación fomenta el uso de sus propias abstracciones en lugar de adoptar completamente el modelo web subyacente. JSF, al igual que los formularios web ASP.NET, intenta crear árboles de componentes con estado en el marcado HTML superior y el protocolo HTTP sin estado. Las mejoras en JSF 2.0 y 2.2, como la introducción de vistas sin estado y la promoción de GET, son pasos en la dirección correcta, tal vez incluso un reconocimiento de que el modelo original fue defectuoso, pero creemos que esto es demasiado poco y demasiado tarde. En lugar de lidiar con la complejidad de JSF, recomendamos que los equipos utilicen marcos simples y trabajen estrechamente con tecnologías web, incluidas HTTP, HTML y CSS.


5
2018-04-30 18:33



yo suelo Rayas y Primavera juntos. Stripes se mantiene fuera de tu camino la mayor parte del tiempo, pero aumenta la primavera muy bien cuando la necesitas.


3
2018-04-30 18:10



estoy usando velocidad y Spring MVC. Además, estoy alojando mi aplicación en el motor de la aplicación Googles y no tengo problemas.


3
2018-04-30 18:21