2010-06-07 16 views
24

Estoy buscando el motor de plantillas para Java con sintaxis como en las plantillas de Django o Twig (PHP). ¿Existe?Sistema de plantillas tipo Django para Java?

Actualización: El objetivo es tener los mismos archivos de plantillas para diferentes idiomas.

<html> 
{{head}} 
{{ var|escape }} 
{{body}} 
</html> 

se pueden representar de pitón código (Django), así como a partir de PHP, utilizando Twig. Estoy buscando una solución Java.

Cualquier otro sistema de plantillas disponible en Java, PHP y python es adecuado.

+0

¡Creo que esta es una pregunta muy interesante! Así que, en esencia, está buscando motores de plantillas que se encuentren en varios idiomas/marcos en los que pueda usar la misma plantilla, al tiempo que intercambie todo el resto de la pila tecnológica. – Davy8

+0

ME PARECE el motor de plantillas django. – drozzy

Respuesta

10
+0

Sarvash, ¿has tenido suerte con alguna de estas sugerencias? – bchang

+0

Hay una comparación de algunos [motores de plantillas web] (http://en.wikipedia.org/wiki/Template_engine_%28web%29) en wikipedia. –

+8

Después de revisar el proyecto de jandgod, tengo mucho miedo de usarlo. El código es horrible (todo tipo de números mágicos, secciones comentadas), y no se ha actualizado desde mayo de 2010. Es una gran idea, desafortunadamente mal implementada ... – drozzy

0

Claro, hay todo tipo de motores de plantilla para Java. He usado FreeMarker, Velocity y StringTemplate. No estoy seguro de lo que quieres decir con la sintaxis similar a Django; cada motor tiene sus propias variaciones en un enfoque de plantillas.

Para una comparación de algunos motores diferentes echa un vistazo a here.

+4

Estoy bastante seguro de que "sintaxis similar a Django" significa que la sintaxis es similar a la de django: http://docs.djangoproject.com/en/dev/topics/templates/ – drozzy

+0

Por qué responder si incluso no sabes sobre qué se hizo la pregunta sobre ... –

+1

Porque cuando respondí la pregunta hace 3 años, no tenía todos los detalles después de la Actualización: El objetivo es tener lo mismo ... Mire solo la primera línea de la pregunta y me explico cómo es inapropiado solicitar más información? – Jeff

1

Si desea que las mismas plantillas para diferentes idiomas, es posible echar un vistazo a Clearsilver.

Clearsilver es un motor de plantillas de idioma neutral que ayuda a separar la presentación del código insertando un formato de datos jerárquico (HDF) neutral entre su código y las plantillas. Piense en HDF como XML, pero mucho más simple.

Se usa para muchos sitios web de alto tráfico, incluidos Yahoo! Grupos, HTML estático de Gmail, orkut.com, wunderground.com y otros. Los lenguajes de implementación utilizados incluyen C/C++, Python, Java, Ruby, PHP, C# y otros. El framework de Python también incluye un despachador de clase Page y un ORM simple que es un poco Ruby-On-Rails en el sentido de que hace que el mapeo entre tablas de base de datos, HDF y plantillas tome muy poco código.

La implementación principal de Clearsilver está en C con envoltorios específicos del idioma. También hay una implementación 100% java hecha por Google y de fuente abierta llamada JSilver.

http://www.clearsilver.net/

http://code.google.com/p/jsilver/

21

he desarrollado Jtwig. Podrías intentarlo. Se está utilizando en algunos proyectos con éxito. Es fácil de configurar con una buena integración con spring webmvc.

Solo incluya la dependencia usando maven o un sistema similar.

<dependency> 
    <groupId>com.lyncode</groupId> 
    <artifactId>jtwig-spring</artifactId> 
    <version>2.0.3</version> 
</dependency> 

Y configure la vista resolver bean para devolver el Jtwig uno.

@Bean 
public ViewResolver viewResolver() { 
    JtwigViewResolver viewResolver = new JtwigViewResolver(); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".twig"); 
    return viewResolver; 
} 

O, si utiliza configuraciones base XML:

<bean id="viewResolver" class="com.lyncode.jtwig.mvc.JtwigViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".twig"/> 
</bean> 
0

Puede utilizar Mustache.java y Handlebars.java. El bigote es muy minimalista. Manillar es similar y compatible con Moustache, pero puede muy fácilmente escribir sus propias extensiones.