集合中有多个教师对象,每个教师对象中包含一个学院对象,无法通过EL获取教师类里面的属性值

问题遇到的现象和发生背景

通过查询所有教师,将教师信息和学院名称展示到JSP页面中,
无法通过EL表达式获取到教师的属性值,但是可以获取到教师对象里面嵌套的学院实体类对象里的属性值

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

教师实体类

public class Teacher {
    private int tId;
    private String tName;
    private String tGender;
    private String tPhone;
    private int tAcid;
    private Academy academy;
}

教师DAO接口

    //查询所有的教师
    public List<Teacher> queryAllTeacher();

控制器的代码

 @RequestMapping("/showAllTeacher")
    public String showAllTeacher(HttpServletRequest request){
        List<Teacher> teachers = teacherService.queryALLTeacher();
        System.out.println(teachers);
        request.setAttribute("List2",teachers);
        return"/pages/teacher/listTeacher.jsp";

    }

XML代码

<resultMap id="TeacherMap2" type="Teacher">
        <id column="t_id" property="tId"/>
        <result column="t_name" property="tName"/>
        <result column="t_gender" property="tGender"/>
        <result column="t_phone" property="tPhone"/>
        <result column="t_acid" property="tAcid"/>
            <association property="academy" javaType="Academy">
                <id column="ac_id" property="acId"/>
                <result column="ac_name" property="acName"/>
            </association>
    </resultMap>
    <select id="queryAllTeacher" resultMap="TeacherMap2">
        select t_id,t_name,t_gender,t_phone,t_acid ,ac_id,ac_name from teacher
        inner join academy
        on t_acid = ac_id
    </select>

JSP页面代码

<form action="Teacher/showAllTeacher"method="post">
    <div class="condition">
        <input type="text" name="tId" placeholder="请输入工号" value="${param.tId}"/>
        <input type="text" name="stuName" placeholder="请输入姓名" value="${param.tName}"/>
        <button type="submit">
            <i class="fa fa-search"></i>
            查询
        </button>
    </div>
</form>
<table class="tableList">
    <thead>
    <tr>
        <th>工号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>电话</th>
        <th>学院</th>
        <th width="120px">操作</th>
    </tr>
    </thead>
    <c:forEach items="List2" var="tList">
      <td>${tList.tId}</td>
        <td>${tList.academy.acName}</td>
    </c:forEach>
</table>

可以通过${tList.academy.acName}获取学院的名称

img


但是无法通过${tList.tId}获取教师Id

img

尽管我采用下标遍历的方法也是无效

<c:forEach items="${List2}" var="tList">
        <td>${tList[0].tId}</td>
        <td>${tList.academy.acName}</td>
    </c:forEach>

img


在页面中可以通过${List2[0]}获取到集合中第一个教师对象的值

${List2[0]}
    <c:forEach items="${List2}" var="tList">
        <td></td>
        <td>${tList.academy.acName}</td>
    </c:forEach>

img

但是${List2[0].tId}却是什么都访问不了

先把实体类改一下:

public class Teacher {
    private int tId;
    private String tName;
    private String tGender;
    private String tPhone;
    private int tAcid;
    private Academy academy;

    public int gettId() {
        return tId;
    }
    public void settId(int tId) {
        this.tId = tId;
    }
    public String gettName() {
        return tName;
    }
    public void settName(String tName) {
        this.tName = tName;
    }
    public String gettGender() {
        return tGender;
    }
    public void settGender(String tGender) {
        this.tGender = tGender;
    }
    public String gettPhone() {
        return tPhone;
    }
    public void settPhone(String tPhone) {
        this.tPhone = tPhone;
    }
    public int gettAcid() {
        return tAcid;
    }
    public void settAcid(int tAcid) {
        this.tAcid = tAcid;
    }
    public Academy getAcademy() {
        return academy;
    }
    public void setAcademy(Academy academy) {
        this.academy = academy;
    }
}

实体类有get,set方法吗

改成这样试一下tList.tId