2010-04-10 16 views
6

Estoy buscando un motor de plantillas. Requisitos:Plantilla motor recomendaciones

  • Se ejecuta en una JVM. Java es bueno; Jython, JRuby y similares, también ...
  • Se puede utilizar fuera de servlets (a diferencia de JSP)
  • Es flexible wrt. donde se almacenan las plantillas (JSP y muchas personas requieren que las plantillas se almacenen en el FS). Se debe proporcionar una interfaz de plantilla de carga que se puede implementar o algo por el estilo
  • Fácil inclusión de Plantillas- parametrizado me gusta mucho fragmentos de JSP etiqueta
  • buenos doctores, código agradable, etc., los mismos de siempre

He visto JSP, es casi perfecto, excepto el acoplamiento de servlets y sistemas de archivos, Stringtemplate. Me encanta la sintaxis de la plantilla, pero falla en el acoplamiento del sistema de archivos, falta la documentación y los grupos de plantillas y cosas son confusas, GXP, TAL , etc.

Ideas, pensamientos?

+0

posible duplicado de [Sugerencias para un motor de plantillas basado en Java?] (Http://stackoverflow.com/questions/174204/suggestions-for-a-java-based-templating-engine) – ripper234

Respuesta

2

¿Qué tal Velocity?

  • completa de Java
  • no requiere servlets
  • que tiene el archivo, tarro, ruta de clase & cargadores de recursos URL (y tal vez más)
  • plantillas pueden incluir otras plantillas (si esto es lo que quiere decir)
  • tiene buenos tutoriales, hasta el momento que pude conseguir lo que necesitaba de los documentos
2

Si mi memoria no me falla, FreeMaker es decente, supongamos que es una especie de "velocidad, la próxima generación".

0

tal vez echa un vistazo a "JSTP", http://jstp.sourceforge.net/manual.html

su sintaxis es subconjunto de JSP, por lo tanto, el apoyo IDE es excelente.

una plantilla "jstp" se traduce a una clase simple de Java en tiempo de compilación. no hay dependencia de tiempo de ejecución.

"parámetros" a una plantilla deben ser pasados ​​por los campos de miembros. tipeo estático todo el camino.

Bar.jstp

<%!           
    public String name;      
%> 

Hello <%= name %> 

acumulación convierte en Bar.java

public class Bar           
{              
    public String name;         
    public void render(java.io.PrintWriter out)   
    {             
     out.print("Hello ");        
     out.print(String.valueOf(name));     
     ...            
    }             
} 

y que invocar la plantilla por

Bar bar = new Bar();        
bar.name = "John";        
bar.render(..);  

con la típica "intercambio en caliente" que no debería tiene que reiniciar el servicio al editar la plantilla.

0

¿Qué hay de Snippetory?

  • Está lleno de Java, (incluso su lógica está escrito en Java!)
  • plantillas son cargados por el UriResolver, con implementaciones para calsspath, sistema de archivos y URL.
  • Se puede usar fuera de Servlets, por ejemplo, como plantilla ad hoc como String.format.
  • Está completamente basado en la inclusión parametrizada de plantillas.
  • Los documentos están bien y es mucho más simple que los motores basados ​​en scripts, por lo que realmente no necesita tanto.
  • Y una nueva versión con great new freatures estará disponible muy pronto, creo que
0

Trate Mixer2. http://mixer2.org/ Mixer2 no tiene ninguna dependencia para servlet-API. Puede almacenar la plantilla en String, java.io.File y java.io.InputStream.

0

Chunk, mi motor de plantillas sensatas para Java, sería una buena opción.

  • Ligero.
  • Excelentes documentos con ejemplos y recetas: http://www.x5software.com/chunk
  • Autónomo - no se requieren servlets.
  • Plantillas del sistema de archivos, classpath, strings, a webserver, or write your own template provider.
  • Basado en plantillas simples con {$ tags}.
  • Las plantillas pueden incluir otras plantillas o incluso ejecutarlas como macros con un diccionario con formato json de valores de etiquetas.
  • Looping, condicionales, filtros, todos los dulces típicos.
0

Soy el autor de Pebble que se ajusta bastante bien a sus criterios.

+0

Sugiero que se explique por qué esta biblioteca funcionaría para el usuario, en este momento esto es básicamente una respuesta de solo enlace que se considera de baja calidad. – Taryn

Cuestiones relacionadas