#javascript #spring-boot #jpa #thymeleaf
#javascript #весенняя загрузка #jpa #thymeleaf
Вопрос:
Я хочу подстрочить переменную, которая является полем идентификатора моего класса JPA, а затем добавить ее к URL в Thymeleaf.
Мой URL похож
/Myapplication/sortddoc/value=__${entity.id}__
Итак, мне нужно сделать что-то вроде
${entity.id}.substr(0, 8)
перед объединением ее с URL.
Я попытался создать новое поле Transient в моем классе entity, содержащее переменную substring, но это не работает, потому что, похоже, требуется поле базы данных, которое я не могу предоставить.
Кто-нибудь может мне помочь, пожалуйста?
Комментарии:
1. Это ваш URL:
/Myapplication/sortddoc/value=
? Вы уверены? Должно ли это быть что-то вроде:/Myapplication/sortddoc?value=
? Это вашvalue
параметр или часть пути?2. это может быть и то, и другое, в thymeleaf я вызываю внешний URL следующим образом:href=»@{/Myapplication/sortddoc/value=__${entity.id }__} но я мог бы сделать это так, как вы говорите, моя проблема в том, как подстрочить $ {entity.id } перед добавлением ее в качестве значения
3. Существует вспомогательный объект Thymeleaf #strings ; таким образом, вы можете создать временную переменную и использовать ее в пути:
th:with="${trancatedId=#strings.substring(entity.id,0,8)}"
4. Для меня это хорошо работает, большое спасибо
Ответ №1:
Вы должны делать это с помощью стандартного синтаксиса URL Thymeleaf вместо объединения строковых переменных или использования предварительной обработки (ни в том, ни в другом нет необходимости).
<a th:with="${value=#strings.substring(entity.id,0,8)}"
th:href="@{/Myapplication/sortddoc/(value=${value})}"></a>
или
<a th:href="@{/Myapplication/sortddoc/(value=${#strings.substring(entity.id,0,8)})}"></a>