對于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]);
}
}
}