You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring+Thymeleaf使用th:field="*{id}"出现模板解析错误如何解决?

异常产生原因

你的表单绑定的对象是Course类实例,但是你在表单项中使用th:field="*{id}"尝试绑定id属性:

  • Course类本身没有声明id字段,仅声明了主键courseId,不存在对应的getId()/setId()方法,Spring无法读取该属性,直接抛出不可读属性异常
  • 你需要绑定的用户id属于Course类关联的User属性,但你当前的Course类没有补充user属性的getter/setter方法,就算直接写关联属性也无法正常读取
解决方案
  1. 先完善Course类的代码,补充user属性的getter、setter方法:
// 追加到Course类末尾
public User getUser() {
  return user;
}

public void setUser(User user) {
  this.user = user;
}
  1. 修改表单中的字段绑定逻辑,将直接绑定id改为绑定关联的user.id属性:
    把course_form.html中对应的输入框代码:
<input type="text" th:field="*{id}" class="form-group" required minlength="5" maxlength="45">

替换为:

<input type="text" th:field="*{user.id}" class="form-group" required minlength="5" maxlength="45">
  1. 可选优化:给教师下拉选也加上绑定逻辑,实现选中教师自动赋值的效果,修改select标签为:
<select th:field="*{user.id}" class="col col-sm-8">

内容的提问来源于stack exchange,提问作者Kirill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:24:03