【问题标题】:Spring-boot Thymeleaf: How do I display an entity name from the database and make that name a hyperlink?Spring-boot Thymeleaf:如何显示数据库中的实体名称并使该名称成为超链接?
【发布时间】:2019-01-30 20:54:36
【问题描述】:

在我的应用程序中有用户,每个用户可以有很多主题。 我能够显示属于当前用户的所有主题。

下面是我显示主题名称的代码行:

<li class="list-group-item" th:each="subject : ${subjects}" th:text="${subject.subjectName}"

我希望用户能够单击该名称,它会将他们带到该主题的页面。该链接将如下所示:

    th:href="@{/viewSubject} + ${subject.subjectId}"

到目前为止,我已经能够在主题名称旁边放置一个“查看主题”链接,但我希望他们只需单击链接名称即可。

我尝试了以下方法,但没有成功,它正在显示名称,但如果有意义,则无法点击:

 <div class="container">
<ul class="list-group">
 <li class="success" >My Subjects</li>
<li class="list-group-item" th:each="subject : ${subjects}" 
th:text="${subject.subjectName}" th:href="@{/viewSubject} + 
${subject.subjectId}">
View Subject
</li>

【问题讨论】:

  • HREF 的 URL 应该是什么样的?
  • @SimonMartinelli 像这样:@{/viewSubject} + ${subject.subjectId}
  • 在 viewSubject 和 id 之间有 /?

标签: java spring-boot hyperlink thymeleaf


【解决方案1】:

你可以这样做:

<li class="list-group-item" th:each="subject : ${subjects}"  >
<a th:href="@{/viewSubject} + ${subject.subjectId}" th:text="${subject.subjectName}" >some text </a>
</li>

也许这需要一些改进,但该元素将是可点击的。

【讨论】:

    【解决方案2】:

    你可以简单地做

    th:href="${'/viewSubject' + subject.subjectId}"
    

    但我认为你想这样做

    th:href="${'/viewSubject/' + subject.subjectId}"
    

    这将创建一个看起来像 "/viewSubjec/12" 的 url,其中 12 是主题 ID。

    【讨论】:

      【解决方案3】:

      这应该可以完成工作:

      <ul th:each="subject : ${subjects}">
          <li>  
              <a th:text="${subject.subjectName}" 
                 th:href="@{/subjects/{subjectId}(subjectId=${subject.subjectId})}>
              </a>
          </li>
      <ul>
      

      我会远离 url 连接。最好使用变量。

      https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#link-urls

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-13
        • 2019-12-01
        • 2013-08-29
        • 1970-01-01
        相关资源
        最近更新 更多