前端jsp页面接收不到后端Controller层返回的Model

前端jsp页面始终接收不到从Controller返回的Model

Controller层代码

 @RequestMapping(value = "/findAll",method = RequestMethod.GET)
    public String findAll(Model model){
        //通过Model储存数据
        /*System.out.println("Controller执行了findAll方法。。");*/
        List<User> list = userService.findAll();
        //addAttribute方法传入一组键值对
        model.addAttribute("list",list);
        return "list";

list.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>查询了所有用户的信息</h3>
    <c:forEach items="${list}" var="user">
        ${user.id}-${user.username}-${user.password}-${user.age}
    </c:forEach>
</body>
</html>

服务器正常运行
在这里插入图片描述
但就是接收不到返回的list集合数据
在这里插入图片描述
排错思路:

1、根据ssm工作原理检查了一遍调用顺序,编写测试类,发现都能正常调用 (无误)

2、打开浏览器F12检查模式,找到NetWork发现根本没有从后端传来的list集合
在这里插入图片描述
3、面向百度找bug (找了一个下午)
发现这哥们碰到一样的问题:公开处刑
最后发现bug实在太坑了,原来idea创建好web项目,默认的web.xml头部配置版本过低

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

这就导致后面的servlet、jsp、EL等采用的全是2.3版本,在2.3版本中,jsp页面是不支持EL的,无法得到正确的解析。

**问题解决:**更换为4.0版本

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-				app_4_0.xsd" version="4.0">

在这里插入图片描述
总结:养成良好的idea开发习惯,在下次开发web项目时首先更换web.xml版本,以免出错。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值