Estou usando o Thymeleaf como mecanismo de modelo. Como passo uma variável do modelo Spring para a variável JavaScript?
Spring-side:
@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
model.addAttribute("message", "hello");
return "index";
}
Cliente:
<script>
....
var m = ${message}; // not working
alert(m);
...
</script>
javascript
spring
thymeleaf
Matteo
fonte
fonte
/*<![CDATA[*/
macro, você a obterá.<script th:inline="javascript">
fonte
defaultanyvalue
será usado apenas ao executar a página estaticamente, ou seja, fora de um contêiner da web. Se rodou dentro de um container e a variávelmessage
não foi declarada, o código fonte resultante serávar message = null;
th:inline="javascript"
à tag do script.Thymeleaf 3 agora:
Exibir uma constante:
Exibir uma variável:
Ou em um comentário para ter um código JavaScript válido ao abrir seu arquivo de modelo de maneira estática (sem executá-lo em um servidor).
Thymeleaf chama isso de: modelos naturais de JavaScript
Thymeleaf irá ignorar tudo o que escrevemos após o comentário e antes do ponto e vírgula.
Mais informações: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
fonte
De acordo com a documentação, existem várias maneiras de fazer o inlining.
Você deve escolher o caminho certo com base na situação.
1) Basta colocar a variável do servidor em javascript:
2) Combine variáveis javascript com variáveis do lado do servidor, por exemplo, você precisa criar um link para solicitar dentro do javascript:
A única situação que não consigo resolver - então preciso passar a variável javascript dentro da chamada do método Java dentro do modelo (acho que é impossível).
fonte
CERTIFIQUE-SE de que já tem o thymleaf na página
fonte
Já vi esse tipo de coisa funcionar na selva:
fonte