Tôi đang sử dụng thymeleaf làm động cơ mẫu. Làm thế nào tôi chuyển một biến từ mô hình lò xo sang biến JavaScript?
Spring-side:
@RequestMapping[value = "message", method = RequestMethod.GET]
public String messages[Model model] {
model.addAttribute["message", "hello"];
return "index";
}
Client-side:
....
var m = ${message}; // not working
alert[m];
...
James Grey
41.5K47 Huy hiệu vàng183 Huy hiệu bạc259 Huy hiệu Đồng47 gold badges183 silver badges259 bronze badges
Hỏi ngày 5 tháng 9 năm 2014 lúc 14:08Sep 5, 2014 at 14:08
Theo tài liệu chính thức:documentation:
/**/
Đã trả lời ngày 5 tháng 9 năm 2014 lúc 14:33Sep 5, 2014 at 14:33
Vdenotarisvdenotarisvdenotaris
12.9K25 Huy hiệu vàng77 Huy hiệu bạc130 Huy hiệu đồng25 gold badges77 silver badges130 bronze badges
7
Thymeleaf 3 bây giờ:
Hiển thị một hằng số:
var MY_URL = /*[[${T[com.xyz.constants.Fruits].cheery}]]*/ "";
Hiển thị một biến:
var message = [[${message}]];
Hoặc trong một nhận xét để có mã JavaScript hợp lệ khi bạn mở tệp mẫu của mình theo cách tĩnh [mà không thực thi nó tại máy chủ].
Thymeleaf gọi đây: Mẫu tự nhiên JavaScript
var message = /*[[${message}]]*/ "";
Thymeleaf sẽ bỏ qua mọi thứ chúng ta đã viết sau khi bình luận và trước dấu chấm phẩy.
Thông tin thêm: //www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
Đã trả lời ngày 10 tháng 11 năm 2017 lúc 22:57Nov 10, 2017 at 22:57
redochkaredochkaredochka
11.7K14 Huy hiệu vàng64 Huy hiệu bạc77 Huy hiệu đồng14 gold badges64 silver badges77 bronze badges
1
var message =/*[[${message}]]*/ 'defaultanyvalue';
Natix
13.7K7 Huy hiệu vàng53 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges53 silver badges68 bronze badges
Đã trả lời ngày 3 tháng 11 năm 2015 lúc 3:55Nov 3, 2015 at 3:55
user5518390user5518390user5518390
2112 Huy hiệu bạc2 Huy hiệu đồng2 silver badges2 bronze badges
3
Theo tài liệu, có một số cách để thực hiện nội tuyến. Cách đúng bạn phải chọn dựa trên tình huống.
The right way you must choose based on the situation.
1] Chỉ cần đặt biến từ máy chủ vào JavaScript:
/**/
2] Kết hợp các biến JavaScript với các biến phía máy chủ, ví dụ: Bạn cần tạo liên kết để yêu cầu bên trong JavaScript:
/**/
Một tình huống tôi không thể giải quyết - sau đó tôi cần vượt qua biến JavaScript bên trong phương thức Java gọi bên trong mẫu [tôi không thể đoán được]. - then I need to pass javascript variable inside the Java method calling inside the template [it's impossible I guess].
Đã trả lời ngày 16 tháng 6 năm 2016 lúc 3:47Jun 16, 2016 at 3:47
Sanlucksanlucksanluck
1.5141 Huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng1 gold badge11 silver badges21 bronze badges
Đảm bảo rằng bạn đã có thymleaf trên trang
//Use this in java
@Controller
@RequestMapping["/showingTymleafTextInJavaScript"]
public String thankYou[Model model]{
model.addAttribute["showTextFromJavaController","dummy text"];
return "showingTymleafTextInJavaScript";
}
//thymleaf page javascript page
var showtext = "[[${showTextFromJavaController}]]";
console.log[showtext];
Đã trả lời ngày 18 tháng 1 năm 2018 lúc 11:25Jan 18, 2018 at 11:25
0
Tôi đã thấy loại điều này hoạt động trong tự nhiên:
....
var m = ${message}; // not working
alert[m];
...
0Đã trả lời ngày 7 tháng 3 năm 2017 lúc 21:55Mar 7, 2017 at 21:55
NoumenonnoumenonNoumenon
4.2104 Huy hiệu vàng49 Huy hiệu bạc62 Huy hiệu Đồng4 gold badges49 silver badges62 bronze badges
Nếu bạn sử dụng Thymeleaf 3:
....
var m = ${message}; // not working
alert[m];
...
1Đã trả lời ngày 7 tháng 9 năm 2020 lúc 9:26Sep 7, 2020 at 9:26
1
Nếu bạn cần hiển thị biến của mình không được xác định, hãy sử dụng định dạng này:
....
var m = ${message}; // not working
alert[m];
...
2Lưu ý các dấu ngoặc
....
var m = ${message}; // not working
alert[m];
...
4 bao bọc biến.Đã trả lời ngày 19 tháng 8 năm 2020 lúc 14:08Aug 19, 2020 at 14:08
michal.jakubeczymichal.jakubeczymichal.jakubeczy
7,1321 Huy hiệu vàng53 Huy hiệu bạc58 Huy hiệu đồng1 gold badge53 silver badges58 bronze badges
Một cách khác để làm điều đó là tạo ra một JavaScript động được trả về bởi bộ điều khiển Java giống như nó được viết ở đây trong diễn đàn thymeleaf: //forum.thymeleaf.org/can-i-use-ther-inline-for-a- riêng biệt-javascript-file-td4025766.html
Một cách để xử lý điều này là tạo một tệp JavaScript động với các URL được nhúng trong đó. Đây là các bước [nếu bạn đang sử dụng MVC Spring]
....
var m = ${message}; // not working
alert[m];
...
3Đã trả lời ngày 27 tháng 9 năm 2020 lúc 15:27Sep 27, 2020 at 15:27