Thymeleaf页面th:text属性值为空时如何避免输出null
Thymeleaf th:text输出null问题解决方案
方案1:使用默认值表达式 ?: 处理单个变量
直接在变量表达式后加?:和要显示的默认值,变量为null时会自动替换为默认值,比如空字符串''。
你代码里的序号行可以修改为:
<td th:text="'Respondents No : ' + ${respondentdata.id?:''}"></td>
如果id为null,只会展示Respondents No : 不会出现null字符串。
方案2:多字段拼接场景使用#strings.listJoin处理
你当前需要拼接多个字段用逗号分隔,手动给每个字段加默认值会出现多余逗号的问题,用Thymeleaf内置的字符串工具类方法可以自动过滤null值,避免多余符号,修改后的p标签代码如下:
<p th:text="${#strings.listJoin({respondentdata.respondentDesignationname, respondentdata.respondentOffice, respondentdata.respondentothersOrg, respondentdata.respondentsubOrgName, respondentdata.respondentdepartmentName, respondentdata.citytownvillage}, ',')}"></p>
#strings.listJoin方法会把第一个参数数组里的非null值用第二个参数的分隔符拼接,不会出现null字符串也不会有多余的逗号。
完整修改后的代码
<tr th:each="respondentdata,status : ${complaintPdfBean.respondent}"> <td th:text="'Respondents No : ' + ${respondentdata.id?:''}"></td> <td> <p th:text="${#strings.listJoin({respondentdata.respondentDesignationname, respondentdata.respondentOffice, respondentdata.respondentothersOrg, respondentdata.respondentsubOrgName, respondentdata.respondentdepartmentName, respondentdata.citytownvillage}, ',')}"></p> </td> </tr>
内容的提问来源于stack exchange,提问作者Pankaj Singh
相关产品推荐
相关产品推荐

