Thymeleaf - построить URL без объединения строк - PullRequest
0 голосов
/ 19 декабря 2018

Поскольку я использую распределенные сервисы, мне нужен этот формат: 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>

Это работает, но я предпочитаю не использовать, так как я получил большеURL несколько больше переменных

<a th:href="${articleServiceBaseUrl}+'/article/addArticle'">Add article</a>

Для других это работает довольно хорошо:

/customer/home/__${cart.cartId}__">home</a>

Как я могу ввести переменные без использования '?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Вы можете использовать буквенное замещение , поэтому вам не нужно использовать кавычки.Если вы сделаете это, ваше выражение будет выглядеть следующим образом:

<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://.

0 голосов
/ 19 декабря 2018

вы можете использовать аннотацию @, которая очень помогает, например: Client Home Надеюсь, что этот ответ ответит на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...