美文网首页每天写1000字
2019-02-12 第55天 -- java.lang.Num

2019-02-12 第55天 -- java.lang.Num

作者: 3171631ce5f1 | 来源:发表于2019-02-13 04:04 被阅读1次

    异常出现情景:Controller向数据库取值,封装在List集合中,Jsp页面通过<c:forEach>取值,访问页面报异常信息如下:

    jstl错误.png
    错误信息分析:
    根据百度结果得出结论:
    该异常属于数字格式化异常,后面有 For input string: "stunum " 提示,这就告诉我们 你当前想把 "stunum " 转换成数字类型时出错了。

    不好解决的点是:后端并未进行过数据类型转换,而stunum 代表的是 ${students.stunum},意思是 将后台查到的数据库字段信息,显示在页面上。
    注:数据库字段为varchar; stunum在Bean中数据类型为string

    @RequestMapping("getStudents")
        public String getStudents(Model model){ 
            System.out.println("进入getStudents+1");
            List<Student>slist = userDao.selectStudent();
            model.addAttribute("students", slist);
            return "jsp/studentList";
        }
    
    <c:forEach var="zhishi" items="${students.slist}">
    //改为items="${students}" 成功获取数据
        <tbody>
            <tr>
                <td>${zhishi.stunum}</td>
                   </tr>
           </tbody>
    </c:forEach>
    //总结:根本没有转换数据类型的步骤
    

    解决思路:
    1.先暂停取数据库数据,改为取死数据,前台尝试取值

    String slist="nihaoya";
    model.addAttribute("students", slist);
    
    ${students}   //成功
    //结论:数据之间的访问没有问题
    

    2.尝试更换取值字段 失败
    3.寻找jstl语法的GUIZE,并进行代码更改。成功。
    总结:本次异常出现原因,在于 jstl 语法使用错误导致。

    End.**在沉网中生活,不敢失去想飞的心,始终铭记飞翔的姿势

    相关文章

      网友评论

        本文标题:2019-02-12 第55天 -- java.lang.Num

        本文链接:https://www.haomeiwen.com/subject/kqtreqtx.html