Java,jsp报错java.lang.NumberFormatException: null

点击修改

img


出现以下错误,不知道哪里错了怎么改

img


userMoInfo的代码


<%-- 
    Document   : userModInfo
    Created on : 2023-6-16, 0:53:33
    Author     : 人间惊鸿客
--%>

<%@page import="vo.User"%>
<%@page import="impl.UserImpl"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>修改用户的信息</h1>
        <%
            String info = (String)request.getAttribute("info");
            int userId= Integer.valueOf(request.getParameter("userId"));
            UserImpl userdao = new UserImpl();
            ArrayList<User> stus = userdao.getUserById(userId);
            User stu = stus.get(0);
        %>
        <%=userId %>
        <%=info%>
        <form action="updateUser.jsp">
            <table border="1">
                <tr>
                    <td>属性</td>
                    <td></td>
                </tr>

                <tr>
                    <td>用户id</td>
                    <td><input type="text" name=userId" value=""></td>
                </tr>

                <tr>
                    <td>用户名</td>
                    <td><input type="text" name="username" value=""></td>
                </tr>
                <tr>
                    <td>用户密码</td>
                    <td><input type="text" name="pass_word" value=""></td>
                </tr>
            
                    <tr>
                    <td>角色</td>
                    <td><input type="text" name="urole" value=""></td>
                </tr>

                <tr>
                    <td><input type="reset" value="重置"></td>
                    <td><input type="submit" value="修改"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

UpdateUser.jsp的代码


<%-- 
    Document   : UpdateUser
    Created on : 2023-6-15, 18:30:19
    Author     : 人间惊鸿客
--%>

<%@page import="impl.UserImpl"%>
<%@page import="vo.User"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
       <%          
            int userId = Integer.valueOf(request.getParameter("userId"));      
            String username= request.getParameter("username");
            String pass_word= request.getParameter("pass_word");
            String urole= request.getParameter("urole");
            User user = new User(userId,username,pass_word,urole);
            UserImpl bookdao = new UserImpl();
            int rownum = bookdao.updateUser(user);
            if(rownum == 1){
                request.setAttribute("info", "更新成功");
                request.getRequestDispatcher("userModInfo.jsp").forward(request, response);
            }else{
                System.out.print(rownum);
                request.setAttribute("info", "更新失败");
                request.getRequestDispatcher("userModInfo.jsp").forward(request, response);
            }
        %>
    </body>
</html>

Ipml里update方法


  public   int updateUser(User users){
        Connection conn = Connect.getConn();
        PreparedStatement stat = null;
        int res = 0;
        try{
            String sqlstr = "update users set username=?,pass_word=?,urole=? where userId=?";
            stat = conn.prepareStatement(sqlstr);   
            stat.setString(1,  users.getUsername());
            stat.setString(2,  users.getPass_word());
            stat.setString(3, users.getUrole()); 
             stat.setInt(4, users.getUserId());
         
            res = stat.executeUpdate();      
            // step5: 查看结果
            System.out.println("执行结果:"+res);
            System.out.println("查询完毕");
        }catch(Exception e){
            System.out.println(e.getMessage());
        }    
        Connect.getClose(conn, stat);
            System.out.println(res );
        return res;
    
    }

通过用户id查询


     public  ArrayList<User> getUserById(int userid) {     
         ArrayList<User> users = new ArrayList<User>();
        Connection conn = Connect.getConn();
        Statement stat = null;
        try{
            stat = conn.createStatement();
            String sqlstr = "select * from users where userId = userId";
            ResultSet rs = stat.executeQuery(sqlstr);
            while(rs.next()){
              int userId = rs.getInt("userId");
               String username = rs.getString("username");
               String pass_word = rs.getString("pass_word");
               String urole = rs.getString("urole");            
               User temp = new User(userId,username,pass_word,urole);
               users.add(temp);
             
            }
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
        Connect.getClose(conn, stat);
        return users;   
    }

这个为空导致的吧?输出一下这个值看看获取到没有

img