2015-04-29 30 views
6

Tôi cần một hình ảnh được tải lên một thẻ html img sử dụng thymeleaf. Vấn đề là, bản thân hình ảnh được lấy từ một url có hai tham số.Thoát '&' nhân vật trong thymeleaf

mẫu:

<img src="/products/images?categoryId=1&image=1" /> 

Vấn đề là, các tham số image được tạo ra tự động và do đó tôi cần phải sử dụng một biểu thymeleaf đó. Vì vậy, tôi đã cố gắng một cái gì đó như thế này:

<img th:src="@{'/products/images?categoryId=1&image=' + ${product.id}}" /> 

Nhưng khi tôi chạy này, tôi nhận được thông báo sau:

Exception parsing document: template="product-list", line 104 - column 59 

nào trỏ tới vị trí nơi biểu tượng '&' xảy ra. Bây giờ, tôi đã thử sử dụng '& amp;' nhưng sau đó, url sẽ trở thành một cái gì đó như

/products/images?categoryId=1&amp;image=1 

Rõ ràng, điều này sẽ không hoạt động.

Vậy làm cách nào khác để tạo liên kết hợp lệ với hai tham số bằng thymeleaf?

Trả lời

6

Điều này có thể dễ dàng thực hiện bởi Thymeleaf. Không ghép các chuỗi và chỉ cần sử dụng @{'/products/images'(categoryId=1, image= ${product.id})}

Xem documentation.

+0

Wow! Cảm ơn! Đoán tôi không biết phải tìm gì. Tôi chỉ đang tìm kiếm các cách để hiển thị biểu tượng '&'! – shyam

+0

Một đoạn mã sạch sẽ và hữu ích! cảm ơn –

3

Cách bạn thoát khỏi dấu và & trong bất kỳ thuộc tính html nào là &amp;. Trên thực tế bạn nên luôn luôn thoát khỏi dấu và trong tất cả các thuộc tính html cho dù bạn đang sử dụng Thymeleaf hay không.

Xem câu hỏi này để biết thêm chi tiết và tham khảo: Do I encode ampersands in <a href...>?

Các vấn đề liên quan