Saya menggunakan Thymeleaf sebagai mesin template. Bagaimana cara meneruskan variabel dari model Spring ke variabel JavaScript?
Sisi pegas:
@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
model.addAttribute("message", "hello");
return "index";
}
Sisi klien:
<script>
....
var m = ${message}; // not working
alert(m);
...
</script>
javascript
spring
thymeleaf
Matteo
sumber
sumber
/*<![CDATA[*/
makro Anda akan mendapatkannya.<script th:inline="javascript">
sumber
defaultanyvalue
hanya akan digunakan saat menjalankan halaman secara statis, yaitu di luar wadah web. Jika dijalankan di dalam wadah dan variabelmessage
belum dideklarasikan, kode sumber yang dihasilkan adalahvar message = null;
th:inline="javascript"
ke tag script.Thymeleaf 3 sekarang:
Tampilkan konstanta:
Tampilkan variabel:
Atau dalam komentar untuk memiliki kode JavaScript yang valid ketika Anda membuka file template Anda secara statis (tanpa menjalankannya di server).
Thymeleaf menyebutnya: template alami JavaScript
Timeleaf akan mengabaikan semua yang kita tulis setelah komentar dan sebelum titik koma.
Info lebih lanjut: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
sumber
Berdasarkan dokumentasi tersebut ada beberapa cara untuk melakukan inlining.
Cara yang benar Anda harus memilih berdasarkan situasi.
1) Sederhananya variabel dari server ke javascript:
2) Gabungkan variabel javascript dengan variabel sisi server, misalnya Anda perlu membuat tautan untuk meminta di dalam javascript:
Satu situasi yang tidak dapat saya selesaikan - maka saya harus meneruskan variabel javascript di dalam metode Java yang memanggil di dalam template (saya kira tidak mungkin).
sumber
Pastikan Anda sudah memiliki daun timun di halaman
sumber
Saya telah melihat hal semacam ini berhasil di alam liar:
sumber