thyleaf proyecto mvc form example engine crear java frameworks integration template-engine stringtemplate
Enlace directo

java - proyecto - thymeleaf form example



¿Qué frameworks Java MVC se integran fácilmente con StringTemplate? (5)

Una búsqueda rápida me llevó a esta demostración de usar StringTemplate para una vista de Spring .

Es difícil ver cómo StringTemplate se integra fácilmente (o no) con los populares frameworks Java web MVC.

¿Qué frameworks Java MVC se integran fácilmente con StringTemplate?

Una buena respuesta:

  • menciona una solución para integrarse con un marco,
  • incluye un enlace a algo útil y aplicable, como:
    • un tutorial ,
    • o documentación ,
    • o una referencia al código fuente :
      • gratis ,
      • y de código abierto o dominio público .

Lectores / votantes , vote por una solución si sabe que es verdadera y excelente.

En el ámbito de esta pregunta, no estoy interesado en ningún otro motor de plantillas que StringTemplate .


He conseguido que StringTemplate trabaje con Spring. Básicamente, todo lo que necesité fue una vista personalizada.

Pero primero, un descargo de responsabilidad: este es un truco experimental. Nunca he usado esto en el código de producción, y podría usar alguna mejora antes de que eso suceda. Creo que es adecuado para responder a su pregunta sobre la facilidad con la que StringTemplate se integra con un marco Web MVC.

Referencia: documentación de Spring Web MVC

StringTemplateView.java:

import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.antlr.stringtemplate.StringTemplate; import org.antlr.stringtemplate.StringTemplateGroup; import org.springframework.core.io.Resource; import org.springframework.web.servlet.view.InternalResourceView; public class StringTemplateView extends InternalResourceView { @Override protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { // Provides a Spring resource descriptor referring to the .st file Resource templateFile = getApplicationContext().getResource(getUrl()); // Kind of redundant... StringTemplateGroup group = new StringTemplateGroup("group", templateFile.getFile().getParent()); StringTemplate template = group.getInstanceOf(getBeanName()); template.setAttributes(model); // Output to client PrintWriter writer = response.getWriter(); writer.print(template); writer.flush(); writer.close(); } }

Y una definición de resolución de resolución de ejemplo:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="myapp.web.view.StringTemplateView"/> <property name="prefix" value="/WEB-INF/st-views/"/> <property name="suffix" value=".st"/> </bean>


Un cierto Harry Karamidas compartió , en diciembre de 2008, un adaptador Struts en el sitio oficial de ST. Enlace directo al archivo zip.


El framework Java de código abierto JPublish funciona muy bien con ST. Al seguir el enlace de arriba, encontrarás lo siguiente:

  • una guía del usuario de JPublish framework
  • una demostración práctica (descargable desde Google code ~ 5.7MB) que le muestra cómo usar ST desde JPublish. Te darás cuenta de lo fácil que es.

Que te diviertas,


Hay una implementación no mala de StringTemplate como una vista para Spring MVC que también admite la integración de SiteMesh.

https://github.com/tomcz/spring-stringtemplate/

Hay una implementación de ejemplo de una aplicación web que usa ST como tecnología de visualización dentro de este proyecto (incluida la integración de sitemesh). No vale la pena repetirlo aquí, por lo que el puntero a él directamente es:

https://github.com/tomcz/spring-stringtemplate/tree/master/src/test/webapp/WEB-INF

El autor también ha proporcionado soporte para la salida de codificación / escape para la prevención de XSS. Este soporte existe para HTML, CSS, XML, JS y URL.

Si eres un usuario de Maven, el proyecto está disponible en

<dependency> <groupId>com.watchitlater</groupId> <artifactId>spring-stringtemplate</artifactId> <version>1.5.1</version> </dependency>