2016-09-12 1 views
0

J'essaie d'obtenir que Thymeleaf me construise une URL où la partie de domaine est un paramètre, un fragment est une chaîne littérale et les paramètres de requête sont également paramétrés.Combinaison d'un nom d'hôte de paramètre avec l'URL littérale dans Thymeleaf

Le documentation offre quelques exemples:

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

ou même

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

Par ailleurs, tous ces bien. Mais si je tente de les combiner, la partie de domaine refuse soudainement de résoudre:

@{${myDomain}/literalUrl(query=${queryValue})} et @{${myDomain}+'/literalUrl'+(query=${queryValue})} chaque résolution de ${myDomain}/literalUrl?query=queryValue et

Comment puis-je thymeleaf pour générer correctement mon url https://example.com/literalUrl?query=queryValue

Répondre

0

Don » Je ne sais pas si c'est une solution légitime pour votre problème, mais si vous concattez literalUrl avec le premier paramètre, cela fonctionnera. Vers le bas: vous avez besoin d'un paramètre de modèle supplémentaire.

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

obtient

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

avec le modèle params:

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