2011-12-13 20 views
6

Estoy tratando de usar StringTemplate en una aplicación web java para generar correos electrónicos html. Cuando intento ingresar saltos de línea, uso \<br\> Esto no parece estar funcionando. \<b\> no está funcionando tan bien. ¿Hay alguna manera de desactivar < y> como delimitadores para poder probar si este es el problema? Por toda la documentación StringTemplate que dice usar ... $ $ como sus delimitadores, pero no dice cómo no utiliza < ...>StringTemplate eliminar < > como delimitadores

Respuesta

6

Al crear un grupo que puede establecer los delimitadores utilizando

STGroup group = new STGroupDir("emails", '$','$'); 

Donde '$' y '$' son sus delimitadores.

+1

Todavía sigo obteniendo 'invalid character '<''. ¿Estás seguro de que realmente deshabilita '<' como delimitador? – elias

+0

Ver Dan [respuesta] (http://stackoverflow.com/a/15217001/2617691) a continuación. Use STRawGroupDir en su lugar si no tiene encabezados ST en archivos st. – matof

2

Aunque Lumpy definitivamente respondió la pregunta correctamente, no solucionó el problema que yo tenía, así que pensé en agregar mi solución aquí para futuros lectores.

Incluso si haces un archivo x.st en el STGroupDir que desea cargar en el programa y hacer que en algún momento, tendrá que definir una sintaxis dentro de ese archivo (igual que lo haría dentro de un STGroupFile) de esta manera:

x(variables, go, here) ::= "this uses $variables$ such as $go$ and $here$" 

tenga en cuenta que la sintaxis debe tener el mismo nombre que el archivo (menos la extensión .st, por supuesto).

Esto es un inconveniente si tiene muchas comillas en sus plantillas, o si no desea incluir la declaración de la plantilla en la parte superior del archivo, o si desea tener una plantilla realmente larga . En esos casos, debe usar un STRawGroupDir. La desventaja es que no hay una ubicación central en la parte superior de su archivo de plantilla nombrando todas las variables que deben pasarse.

Cuestiones relacionadas