Estoy a punto de elegir la forma de organizar mi vista (con spring-mvc, pero eso no debería importar mucho)
Por lo que veo, hay 6 opciones (aunque no son mutuamente excluyentes):
- Losas
- Sitemesh
- Freemarker
- Velocidad
<jsp:include>
<%@ include file="..">
Los mosaicos y Sitemesh se pueden agrupar; también Freemarker y Velocity . Cuál dentro de cada grupo usar no es un tema de esta discusión, hay suficientes preguntas y discusiones al respecto.
Esta es una lectura interesante , pero no puedo convencerme de usar mosaicos.
Mi pregunta es: ¿qué dan estos marcos que no se pueden hacer correctamente con <@ include file="..">
y JSTL? Puntos principales (algunos extraídos del artículo):
Incluyendo partes de las páginas, como el encabezado y el pie de página , no hay diferencia entre:
<%@ include file="header.jsp" %>
y
<tiles:insert page="header.jsp" />
Definir parámetros en el encabezado , como título, metaetiquetas, etc. Esto es muy importante, especialmente desde el punto de vista del SEO. Con las opciones de plantillas, simplemente puede definir un marcador de posición que debe definir cada página. Pero para que pueda en jsp con JSTL , usando
<c:set>
(en la página incluida) y<c:out>
(en la página incluida)Reorganización del diseño : si desea mover la ruta de navegación sobre el menú o el cuadro de inicio de sesión sobre otro panel lateral. Si las inclusiones de páginas (con jsp) no están bien organizadas, es posible que deba cambiar todas las páginas en tales casos. Pero si su diseño no es demasiado complejo y coloca las cosas comunes en el encabezado / pie de página, no hay nada de qué preocuparse.
Acoplamiento entre los componentes comunes y el contenido específico : no encuentro ningún problema con esto. Si desea reutilizar algún fragmento, muévalo a una página que no incluya ningún encabezado / pie de página e inclúyalo donde sea necesario.
Eficiencia :
<%@ include file="file.jsp" %>
es más eficiente que cualquier otra cosa, porque se compila una vez. Todas las demás opciones se analizan / ejecutan muchas veces.Complejidad : todas las soluciones que no son jsp requieren archivos xml adicionales, inclusiones adicionales, configuraciones de preprocesador, etc. Esto es tanto una curva de aprendizaje como la introducción de más puntos potenciales de falla. Además, hace que el soporte y los cambios sean más tediosos: debe verificar una serie de archivos / configuraciones para comprender qué está sucediendo.
Marcadores de posición : ¿la velocidad / marcador libre dan algo más que JSTL? En JSTL, coloca un marcador de posición y usa el modelo (colocado en el alcance de la solicitud o de la sesión, por los controladores) para llenar estos marcadores de posición.
Entonces, convénceme de que debería usar cualquiera de los marcos anteriores en lugar de / además de JSP simple.