原因一(常见):表单中的name属性值与创建的类中属性名字不一致.
例如:
//表单内容
<input type="text" name="username">
//类属性
public class Person{
private String gender;//错误出现的地方
}
此时表单中的name属性值为username,而类属性中却没有username属性,只有一个gender属性,就会导致封装失败.
原因二(不常见):在创建对象的时候,没有new,而是直接赋值为null.
例如
//获取表单信息
Map<String, String[]> map = req.getParameterMap();
//封装信息
Person person=null;//错误出现的地方
BeanUtils.populate(person,map);
正确写法:Person person=new Person();