Правильный синтаксис Thymeleaf в теге th: replace - PullRequest
0 голосов
/ 17 июня 2019

У меня есть этот блок кода, Thymeleaf вызывает контекст Spring и извлекает идентификатор пользователя.

 <li {#ctx.httpSession} >
                      <span th:object="${session.user}"> </span>
                      <span><p>Surname: <span th:text="*{user.id}">Pepper</span></p></span>

Я хотел бы поместить его в существующий элемент th: заменить указанный.По сути, мне нужно заменить static 2 текущим идентификатором сеанса внутри URL-адреса. Я перепробовал множество вариантов и не могу найти решение в Интернете.

This is one of my attempts
<li sec:authorize="isAuthenticated()" {#ctx.httpSession}, th:object="${session.user}"  th:replace="::menuItem ( '/users/'+*{user.id}+'/coworkers/find','coworkers','find coworkers','search','Find coworkers')"><span>Find Coworkers</span>
                  </li>
This is the orginial 
<li sec:authorize="isAuthenticated()"  th:replace="::menuItem ( '/users/2/coworkers/find','coworkers','find coworkers','search','Find coworkers')">

Я новичок в Thymeleaf, поэтому любая помощь очень ценится, спасибо.

Пробовал {* {user.id} }

Причина: org.thymeleaf.exceptions.TemplateProcessingException: исключение при оценке выражения SpringEL: "user.id" (шаблон: «фрагменты / макет» - строка 65, столб 106)

1 Ответ

0 голосов
/ 17 июня 2019

Это должно работать:

th:replace="::menuItem(*{'/users/' + user.id + '/coworkers/find'}, 'coworkers', 'find coworkers', 'search', 'Find coworkers')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...