2008-12-19 14 views
11

Actualmente estoy construyendo una aplicación Spring MVC. Estaba buscando usar páginas JSP con bibliotecas de etiquetas para manejar la capa de vista y el formato del HTML, pero me encontré con otro grupo en mi compañía que usa plantillas de Velocity para el mismo propósito.¿Beneficios de usar JSTL vs Velocity para ver la capa en la aplicación MVC?

Por lo que puedo ver, me parece como si hay una gran cantidad de similitudes entre los dos enfoques:

  1. Ambos tienen la sintaxis fácil de entender. Facilita la comprensión y el uso por parte de los no desarrolladores, lo que permite a los diseñadores centrarse en el HTML/CSS y solo tener que usar directivas/bibliotecas de etiquetas en los pocos casos en que necesitan condicionales/contenido dinámico sin tener que comprender completamente Java.
  2. Simple para ver qué parte del contenido es HTML vs cuáles son directivas/lógica.
  3. Ambos son muy utilizados y bien soportados.
  4. Fácil de integrar con Spring MVC.

Pero al comparar las dos tecnologías, no veo razones específicas para usar una frente a la otra. Tengo problemas para pensar en los inconvenientes específicos de Velocity o JSTL.

Así que mi pregunta es, ¿cuáles son los pros y los contras de cada uno en su opinión? Si ha creado una aplicación MVC (Spring) usando una u otra, ¿qué le hizo decidir sobre la tecnología de capa de vista que está utilizando y qué (si es que lo hizo) le hizo decidir contra la otra?

actualización: he encontrado una discusión similar de este tema archivados en el foro de Spring Framework here, que podría ser de algún interés para cualquier persona que hace la misma decisión entre JSTL y velocidad como yo.

Respuesta

8

Preferiría usar Velocity solo porque el uso de JSP + JSTL puede permitir que los desarrolladores perezosos/descuidados tengan problemas al agregar scriptlets. No debería haber ninguna razón para tener código Java en su nivel de vista. No hace falta mucho para entender Velocity y, de hecho, lo recogí en unas dos semanas. Si bien no me gusta el formato de la salida, en su mayor parte funciona bastante bien. En realidad, no lo estamos usando en el nivel de vista de la aplicación, sino más bien para generar HTML para que lo usen otros navegadores. Guardamos el resultado de Velocity como archivos que luego se implementa en un servidor diferente para el consumo de otros clientes web.

6

En realidad, prefiero Freemarker a Velocity, en caso de que esté dispuesto a explorar otras opciones. Comparación aquí:

http://freemarker.org/fmVsVel.html

Estoy de acuerdo con las declaraciones de Ben acerca de la aplicación de una visión simple, evitando JSP y la posibilidad de scriptles. También me gusta la capacidad de renderizar una plantilla Freemarker o Velocity en cualquier tipo de entorno de ejecución (método JUnit, main()) sin requerir un contenedor Servlet/JSP como lo haría JSP.

+0

freemaker para mí es el jefe de todos ellos ... Lo probé un par de veces y fue notable, y no es tan difícil obtener un grep en poco tiempo. – engma

2

JSP también es más difícil diferenciar visualmente del HTML incrustado. Con Velocity, es muy obvio.

Además, el paquete VelocityTools proporciona una gran cantidad de funcionalidad adicional.

Cuestiones relacionadas