如果在SpringMVC中嵌套Bean的所有属性都为空,则将其绑定到null
假设我有一个Account类,它有一个Person类的实例变量如果在SpringMVC中嵌套Bean的所有属性都为空,则将其绑定到null,spring,spring-mvc,spring-mvc-initbinders,Spring,Spring Mvc,Spring Mvc Initbinders,假设我有一个Account类,它有一个Person类的实例变量 public class Account { private String accountId; private Person person; // getters and setters } public class Person { private String name; // getters and setters } 现在,如果表单帖子正文包含以下参数: account.accountId=1
public class Account {
private String accountId;
private Person person;
// getters and setters
}
public class Person {
private String name;
// getters and setters
}
现在,如果表单帖子正文包含以下参数:
account.accountId=123&account.person.name=
Spring将实例化一个新的Person,即使它的所有属性都为空(或者为null,因为我正在使用@ControllerAdvice和@InitBinder,其中我正在为String设置StringTrimmerEditor)。有没有一种方法可以指示Spring不要创建Person实例呢?嗯,我认为没有,因为将对象注入对象是依赖注入原则。对象的松散耦合。如果您不想创建Person对象,请不要为其提供setter。但我不确定spring是否允许使用注释