如果Spring MVC中的所有属性都为空,则将嵌套Bean绑定为null

时间:2014-02-09 19:37:29

标签: 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
}

现在如果表单POST正文包含以下参数:

account.accountId=123&account.person.name=

Spring将实例化一个新的Person,即使它的所有属性都是空的(或者为null,因为我使用@IntrollerBinder的@ControllerAdvice,我在为String设置StringTrimmerEditor)。有没有办法指示Spring不要创建Person实例呢?

1 个答案:

答案 0 :(得分:0)

嗯,我想不是,因为将对象注入对象是依赖注入原则。和松散的物体耦合。如果您不想创建Person对象,请不要为它提供setter。但我不确定春天是否愿意使用注释来允许它。