th:replace标签内正确的Thymeleaf合成

时间:2019-06-17 14:08:23

标签: spring syntax thymeleaf

我有这段代码Thymeleaf调用Spring上下文并提取用户ID。

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

我想将其放入现有的th:replace列出的项目中。基本上,我需要用url中的当前会话userid替换static 2,我尝试了很多选项,并且似乎无法在线找到解决方案。

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”(模板:“ fragments / layout”-第65行,col 106)

1 个答案:

答案 0 :(得分:0)

这应该有效:

th:replace="::menuItem(*{'/users/' + user.id + '/coworkers/find'}, 'coworkers', 'find coworkers', 'search', 'Find coworkers')"