在使用分布式服务时,我需要以下格式: baseUrl/path
。 因此,将变量用作参数将不可行。
我得到了以下代码:
@GetMapping(HOME)
public String showHomeView(@PathVariable Integer cartId, Model model){
Integer customerId = cartRequestComponent.getCustomerIdByCartId(cartId);
Customer customer = getCustomerById(customerId);
model.addAttribute("articleServiceBaseUrl", articleServiceBaseUrl);
return "home";
}
和href:
<a th:href="${articleServiceBaseUrl}/article/addArticle">Add article</a>
也尝试过:
<a th:href="${articleServiceBaseUrl}+/article/addArticle">Add article</a>
并且:
<a th:href="__${articleServiceBaseUrl}__/article/addArticle">Add article</a>
并且:
<a th:href="__${articleServiceBaseUrl}__+/article/addArticle">Add article</a>
此方法有效,但我不愿使用,因为我得到的网址越长,变量又越少
<a th:href="${articleServiceBaseUrl}+'/article/addArticle'">Add article</a>
对于其他人来说,这很好用:
/customer/home/__${cart.cartId}__">home</a>
如何在不使用'
的情况下注入变量?
答案 0 :(得分:1)
您可以使用literal substitution,因此不必使用引号。如果这样做,您的表情将如下所示:
<a th:href="|${articleServiceBaseUrl}/article/addArticle|">Add article</a>
或
|/customer/home/${cart.cartId}|
话虽如此,大多数情况下都应使用标准url表达式。
|/customer/home/${cart.cartId}|
可以表示为
@{/customer/home/{cart}(cart=${cart.cartId})}
@{...}
表达式确实支持到其他服务器/主机的链接,但是如果这样做,它们必须以http://
或https://
开头。
答案 1 :(得分:0)
您可以使用@批注,例如,它可以在很多情况下使用: 客户主页 希望这个答案能回答您的问题