我试图让 Thymeleaf 为我构建一个 URL,其中域部分是一个参数,一些片段是一个文字字符串,并且查询参数也被参数化。
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
最佳答案
不知道这是否是您问题的合法解决方案,但如果您将 literalUrl 与第一个参数连接起来,它将起作用。缺点:您需要一个额外的模型参数。
<a th:href="@{${linkData+path}(q=${queryParam})}">some link</a>
得到
<a href="https://example.com/literalUrl?q=queryValue">some link</a>
模型参数:
mv.addObject("linkData", "https://example.com");
mv.addObject("path", "/literalUrl");
mv.addObject("queryParam", "queryValue");
关于java - 在 Thymeleaf 中将参数主机名与文字 url 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452150/