как избежать печати null, если значение не указано в th:текст на странице Thymeleaf

#spring-boot #thymeleaf

Вопрос:

когда значение не в th:text, на странице выводится значение null. как справиться с этим условием на странице thymeleaf

Это код Thymleaf:

 <tr th:each="respondentdata,status : ${complaintPdfBean.respondent}">
                 <td th:text="'Respondents No : '   ${respondentdata.id}"></td>
                 <td>
                 <p th:text="${respondentdata.respondentDesignationname ',' respondentdata.respondentOffice ',' respondentdata.respondentothersOrg ',' respondentdata.respondentsubOrgName ',' respondentdata.respondentdepartmentName ',' respondentdata.citytownvillage}"></p>
                 
                 </td>
                </tr>
 

и это скриншот, где значения нет, тогда он показывает нуль

https://i.stack.imgur.com/hqfjK.png

Ответ №1:

Для этого существует несколько методов. Я хотел бы привести пару самых простых из них…

Вы можете использовать утилиту выражения Thymeleaf #объекты для проверки на обнуление вашего объекта. Ваш код может выглядеть следующим образом:

 <p th:text="${#objects.nullSafe(respondentdata.respondentDesignationname,'') ',' #objects.nullSafe(respondentdata.respondentOffice,'') ','  .... so on .....}"></p>
 

Вы можете использовать условную оценку Thymeleaf th:if атрибута с помощью утилиты выражения #strings объекта, разделив абзац p на небольшие фрагменты span . Ваш код может выглядеть следующим образом:

 <p>
<span th:unless="${#strings.isEmpty(respondentdata.respondentDesignationname)}" th:text="th:text="${respondentdata.respondentDesignationname   ','}"></span>
<span th:unless="${#strings.isEmpty(respondentdata.respondentOffice)}" th:text="th:text="${respondentdata.respondentOffice   ','}"></span>
<span>.... so on ....</span>
</p>