Spring-boot Thymeleaf: Как отобразить имя объекта из базы данных и сделать это имя гиперссылкой? - PullRequest
0 голосов
/ 24 августа 2018

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

Ниже моя строка кода, которая отображает имя субъекта:

<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>

Ответы [ 3 ]

0 голосов
/ 24 августа 2018

Вы можете просто сделать

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

, но я думаю, что вы хотите сделать

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

, это создаст URL, который выглядит как "/viewSubjec/12" 12, являющийся идентификатором субъекта..

0 голосов
/ 24 августа 2018

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

<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

0 голосов
/ 24 августа 2018

Вы можете сделать что-то вроде этого:

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

Возможно, это потребует некоторой доработки, но элемент будет кликабельным.

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