W程序猿W 2022-04-20 17:04 采纳率: 25%
浏览 39
已结题

集合中有多个教师对象,每个教师对象中包含一个学院对象,无法通过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}却是什么都访问不了

  • 写回答

3条回答 默认 最新

  • 溪风沐雪 2022-04-20 17:39
    关注

    先把实体类改一下:

    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;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 修改了问题 4月20日
  • 修改了问题 4月20日
  • 展开全部

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装