天天看點

servlet擷取不到表單資料對于servlet擷取不到表單資料

對于servlet擷取不到表單資料

今天困擾我很久,使用BeanUtils卻擷取不到資料見代碼一,使用自己寫的擷取方法卻可以,最後才知道是很簡單的問題
  • 類名和表名不一緻
  • 表單中的屬性名和表名的不一緻

處理辦法

  • 檢查類中的屬性名和表單的name值是否一緻:(比如我的問題就是u_name類中屬性名為u_username )
  • 檢查表單的送出action和method
  • 檢查擷取操作的代碼的編寫
  • 使用寫好的jar包
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        req.setCharacterEncoding("UTF-8");

        User user = new User();
        try {
            BeanUtils.populate(user, req.getParameterMap());
//            test2(req);
            if (req.getParameterMap().entrySet() == null) {
                System.out.println("null");
            }
            Userservice userservice = new UserServiceImpl();

            user = userservice.login(user);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(user.toString());
        req.setAttribute("u", user);
        req.getRequestDispatcher("index.jsp").forward(req, resp);
    }
           
  • 擷取表單的自寫方法
private void test2(HttpServletRequest req) {
        Enumeration<String> names = req.getParameterNames();
        while (names.hasMoreElements()) {
            String name = names.nextElement();
            System.out.println(name);
            String[] values = req.getParameterValues(name);
            for (int i = 0; values != null && i < values.length; i++) {
                System.out.println(name+""+values[i]);
            }
        }
    }