2016-09-12 4 views
0

Я пытаюсь заставить Thymeleaf создать мне URL-адрес, где часть домена является параметром, а какой-то фрагмент - литеральной строкой, а параметры запроса также параметризуются.Объединение имени узла параметра с литеральным url в Thymeleaf

documentation предлагает несколько примеров:

@{${myDomain}/literalUrl} 
@{${myDomain}'/literalUrl'} 
@{/literalUrl(query=${queryValue})} 
@{'/literalUrl'(query=${queryValue})} 
@{${myDomain}(query=${queryValue})} 

или даже

<a th:with="baseUrl=${myDomain}" th:href="@{${baseUrl}}(query=${queryValue})}"> 

Отдельно все эти хорошо работают. Но если я пытаюсь объединить их, доменная часть внезапно отказывается решить:

@{${myDomain}/literalUrl(query=${queryValue})} и @{${myDomain}+'/literalUrl'+(query=${queryValue})} каждый постановляет ${myDomain}/literalUrl?query=queryValue и

Как получить Thymeleaf правильно сформировать свой URL https://example.com/literalUrl?query=queryValue

ответ

0

Дон» t знать, является ли это законным решением вашей проблемы, но если вы конкатцируете literalUrl с первым параметром, он будет работать. Нижняя сторона: вам нужен дополнительный параметр модели.

<a th:href="@{${linkData+path}(q=${queryParam})}">some link</a> 

получает

<a href="https://example.com/literalUrl?q=queryValue">some link</a> 

с модельными Params:

mv.addObject("linkData", "https://example.com"); 
mv.addObject("path", "/literalUrl"); 
mv.addObject("queryParam", "queryValue");