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
Al crear un grupo que puede establecer los delimitadores utilizando
STGroup group = new STGroupDir("emails", '$','$');
Donde '$' y '$' son sus delimitadores.
En la parte superior del archivo de grupo de plantillas (.stg) se puede poner:
delimiters "$", "$"
... o lo que sea delimitadores que le gustaría. Más información está en: https://theantlrguy.atlassian.net/wiki/display/ST4/Group+file+syntax
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.
- 1. Cómo eliminar <hash></hash> de format.xml
- 2. Tratar Enumeración <T> como Iterator <T>
- 3. cómo usar>< <= > = como funciones?
- 4. eliminar <br> con jquery
- 5. ¿Debo eliminar el vector <string>?
- 6. Eliminar elementos de IEnumerable <T>
- 7. eliminar <br> de div específica
- 8. Eliminar <script> etiquetas usando jQuery
- 9. Cómo eliminar `// <! [CDATA [` y end `//]]>`?
- 10. StringTemplate carácter no válido '<' al leer XML plantilla
- 11. ¿Existe algo así como DbSet <T> .RemoveWhere (predicado <T>)
- 12. <%# %> vs <%= %>
- 13. Use <canvas> como fondo CSS
- 14. Loop anidado en StringTemplate
- 15. String.Split() - tratando los delimitadores consecutivos como uno
- 16. ¿Cómo eliminar el espacio entre <svg> y <td> en HTML5?
- 17. cómo eliminar texto entre <script> y</script> usando python?
- 18. Eliminar elementos en un IList <> de otro IList <>
- 19. <script></script> o <script />?
- 20. SortedList <>, SortedDictionary <> y Dictionary <>
- 21. XSD Formateo <element><complexType> vs <complexType /><element/>
- 22. Depuración visual utilizando >>,>,> |, ||, | <, <, <<
- 23. Problemas al diseñar elementos semánticos HTML5 como <section>, <nav> y <article>
- 24. Por qué IEnumerable <T> se define como IEnumerable <out T>, no IEnumerable <T>
- 25. ¿Está bien para devolver una lista interna <T> como IEnumerable <T> o ICollection <T>?
- 26. Múltiple <html><body></html></body> en el mismo archivo
- 27. : <span> vs <label>
- 28. incluyendo <xstring>, <cstring>, <string> y <wstring> en C++
- 29. TextMate js.erb: alternar <%= %>, <% %>
- 30. LINQ: cómo eliminar el elemento de IQueryable <T>
Todavía sigo obteniendo 'invalid character '<''. ¿Estás seguro de que realmente deshabilita '<' como delimitador? – elias
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