request.getParameterMap和BeanUtils.popluate小细节
在写JavaWeb项目过程中,后台查询数据库返回数据一直为null,开始一直以为是JDBC和dao层的问题。
后面查了一下getParameterMap()和popluate()的用法,getParameterMap()是根据表单中name值获取value值,然后封装成map;BeanUtils.popluate()是获取map的键,如果Bean有对应map键的属性,就把键对应的值赋给Bean。
我在表单中name值是username,Bean属性中是name,popluate方法不能把username和name对应,所以前端表单中的值无法传到后端。于是查询报错。
Map<String, String[]> map = request.getParameterMap();
Student student = new Student();
try {
BeanUtils.populate(student, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
切记表单中name的值要和Bean属性名相同!
切记表单中name的值要和Bean属性名相同!
切记表单中name的值要和Bean属性名相同!
记录一下错误,加深印象