SpringBoot+Thymeleaf项目MySQL数据无法在HTML模板展示问题咨询
问题排查及修复方案
1. 核心模板语法错误(直接导致渲染失败)
你在Thymeleaf循环中定义的迭代变量是adminuser,但第一列ID的取值写的是${user.id},变量user不存在,会触发模板渲染异常,导致整个表格数据无法加载。
修复方案:将第一列的取值修改为正确的迭代变量:
<td th:text="${adminuser.id}"></td>
2. 字段与列不匹配+二进制字段处理错误
userImage是存储图片的byte[]二进制类型,直接用th:text输出只会显示字节数组的内存地址,同时你错误地将头像字段放到了Personnel(人员名称)列:
- 如果Personnel列需要显示人员名称,直接替换该列取值为
${adminuser.name}即可 - 如果需要展示用户头像,需要先将字节数组转Base64编码后用img标签加载:
<!-- 头像展示示例 --> <td> <img th:src="'data:image/png;base64,' + ${T(java.util.Base64).getEncoder().encodeToString(adminuser.userImage)}" alt="用户头像" width="50"/> </td>
3. 后端数据校验(可选排查步骤)
如果修复上述问题后依然无数据,先确认后端是否正确拿到数据库数据:
- 在Controller的
goToEntriesPage方法中打印returnEntries的长度,确认数据库中确实存在有效记录 - 确认
AdminUserRepository接口正确继承了JpaRepository<AdminUser, Integer>,没有自定义查询逻辑错误
4. 列顺序对齐优化
当前表头和表体的列顺序不匹配:表头顺序为ID→Personnel→Request ID→Device Type→Request Date→Issue Details→Status→Actions,而你写的表体顺序和字段不对应,调整字段顺序即可正常对齐展示。
内容的提问来源于stack exchange,提问作者J Maine
相关产品推荐
相关产品推荐

