Estoy usando Thymeleaf como motor de plantilla. ¿Cómo paso una variable del modelo Spring a la variable JavaScript?
Lado del resorte:
@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
model.addAttribute("message", "hello");
return "index";
}
Lado del cliente:
<script>
....
var m = ${message}; // not working
alert(m);
...
</script>
javascript
spring
thymeleaf
Matteo
fuente
fuente
/*<![CDATA[*/
macro, obtendrás eso.<script th:inline="javascript">
fuente
defaultanyvalue
solo se utilizará cuando la página se ejecute de forma estática, es decir, fuera de un contenedor web. Si se ejecutó dentro de un contenedor y la variablemessage
no ha sido declarada, el código fuente resultante serávar message = null;
th:inline="javascript"
a la etiqueta de secuencia de comandos.Thymeleaf 3 ahora:
Mostrar una constante:
Mostrar una variable:
O en un comentario para tener un código JavaScript válido cuando abre su archivo de plantilla de manera estática (sin ejecutarlo en un servidor).
Thymeleaf llama a esto: plantillas naturales de JavaScript
Thymeleaf ignorará todo lo que hayamos escrito después del comentario y antes del punto y coma.
Más información: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
fuente
Según la documentación, hay varias formas de hacer el inlining.
La forma correcta debe elegir en función de la situación.
1) Simplemente coloque la variable del servidor en javascript:
2) Combine variables de javascript con variables del lado del servidor, por ejemplo, necesita crear un enlace para solicitar dentro del javascript:
La única situación que no puedo resolver , entonces necesito pasar la variable javascript dentro de la llamada al método Java dentro de la plantilla (es imposible, supongo).
fuente
ASEGÚRESE de que ya tiene thymleaf en la página
fuente
He visto este tipo de cosas funcionar en la naturaleza:
fuente