2015-04-29 2 views
6

Мне нужно изображение, загруженное в тег html img с использованием thymeleaf. Проблема заключается в том, что само изображение получается из url, который принимает два параметра.Escaping '&' character in thymeleaf

Пример:

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

Проблема, параметр image генерируется динамически и, следовательно, мне нужно использовать выражение thymeleaf там. Поэтому я пытался что-то вроде этого:

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

Но когда я запускаю это, я получаю следующее сообщение:

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

который указывает на место, где происходит «&» символ. Теперь я попытался использовать '& amp;' но тогда URL становится чем-то вроде

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

Очевидно, что это не сработает.

Так как же я могу сделать правильную ссылку с двумя параметрами с помощью thymeleaf?

ответ

6

Это может легко сделать Thymeleaf. Не объединяйте струны и просто используйте @{'/products/images'(categoryId=1, image= ${product.id})}

См. documentation.

+0

Wow! Благодаря! Думаю, я не знал, что искать. Я просто искал способы отобразить символ «&»! – shyam

+0

Какой чистый и полезный фрагмент кода! благодаря –

3

Способ, которым вы избегаете амперсанда & в любом атрибуте html, является &amp;. На самом деле вы всегда должны избегать амперсандов во всех атрибутах html, используете ли вы Thymeleaf или нет.

Смотрите этот вопрос для более подробной информации и ссылок: Do I encode ampersands in <a href...>?