当前位置: 首页 > 知识库问答 >
问题:

TH内正确的Thymeleaf syntex:替换标记

申屠弘图
2023-03-14

我有这段代码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:替换列出的项目中。基本上我需要把静态2替换为url中的当前会话用户ID,我已经尝试了许多选项,但似乎找不到在线解决方案。

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')">

我是一个沉香的新手,所以任何帮助都非常感谢,谢谢。

已尝试{*{user.id}}

由:org.thymeleaf.exceptions.templateProcessingException引起:计算SpringEL表达式的异常:“user.id”(模板:“fragments/layout”-第65行,col 106)

共有1个答案

公冶子琪
2023-03-14

这应该有效:

th:replace="::menuItem(*{'/users/' + user.id + '/coworkers/find'}, 'coworkers', 'find coworkers', 'search', 'Find coworkers')"
 类似资料:
  • 在RestEasy 3.0.16中,最终版本PreProcessInterceptor接口是不推荐的。那么这个接口的适当替换是什么。在jboss EAP7中,RestEasy Version3.0.16.final被使用。

  • 我正在处理一个CMS格式的文本块像这样。 <代码> 双线返回<代码> 因为文本块已经有一个开头

  • Parameter Position参数位置 Type类型 Required必需 Default默认 Description 1 string Yes n/a This is the regular expression to be replaced. 替换正则表达式. 2 string Yes n/a This is the string of text to replace with. 用来替

  • 我正在尝试配置tomcat 7.0.23中的RollingFile appender(带有10个日志文件的log4j2(2.0.2)。 当我将${sys:catalina.base}替换为filePattern=“c:/apache-tomcat-7.0.23/logs/app.%I.log”时,它起作用了。 这意味着无法正确解释filePattern。 如何克服这个问题而不必静态地指定日志目录?

  • 在Android应用程序中,我有一个< code>EditText,它应该用应用程序数据中的值替换某些字符串。 例如,如果用户键入则应将其替换为当前登录的用户的名称。 在 的 方法中的可编辑参数将替换为正确的值,但问题是,如果我按下任何字符,被替换为实际用户名之后,它会附加后跟按下的字符。 e. g. 假设当前登录的用户名是 a、 如果输入 b.< code>afterTextChanged()将