栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MVC中关于service对象无法获取到request中值的问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MVC中关于service对象无法获取到request中值的问题

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取数据
        String id = request.getParameter("id");
        Brand brand = brandService.selectById(Integer.parseInt(id));//返回的是Integer类型,所以参数最好为Integer类型
        
        //存储到request域中
        request.setAttribute("brand",brand);
        //发送到/update.jsp
        request.getRequestDispatcher("/update.jsp").forward(request,response);

起因是测试通过JSP回显数据时存在数据为空的情况,且浏览器一直提示:

HTTP Status 500 - Cannot invoke "java.lang.Integer.intValue()" 
because the return value of "java.lang.Integer.getInteger(String)" is null

虽然将id的值设为了Integer类型但是数据还是无法读取到 

然后就开始测试各个阶段的问题:

首先是分析是否是路径问题导致id的值没法获取 false

 然后是否是因为使用了EL表达式,使得对象中的值没法获取,改了头标签后还是false

最后还在servlet中一点点测试域中的值是否为空

        String id = request.getParameter("id");
        System.out.println(id==null);
        Brand brand = brandService.selectById(Integer.getInteger(id));
        System.out.println(brand==null);

发现: id返回为false,而brand返回的是true! 那问题就应该处在执行sql的问题上,确认sql语句没问题后,才发现获取id的方法用的是

Integer.getInteger();

而JSP中不会主动拆封,也可能是版本问题,所以会导致brand无法获取到id的值

解决方法:

Integer.parseInt();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号