我遇到了以下 SpringMVC 问题:有一个域对象使用某个 Address 子对象,但必须调整 getter/setter 以通过转换使用不同的Address 对象。这是一个架构要求。
public class DomainObj {
protected DomainObj.Address address;
public anotherpackage.new.Address getAddress()
{
return convertFrom(address);
}
public void setAddress (anotherpackage.new.Address value)
{
this.address = convertTo(value);
}
}
// Internal Address object, old, #1
public static class Address {
protected String street1;
protected String street2;
// etc., getters/setters
}
现在,在 JSP 中,我将一个输入文本字段绑定到我们必须处理的新地址对象(转换的结果)。在这个新的 2nd Address 对象 ( anotherpackage.new.Address
) 中,有一个字段,例如“addressLine1”,它与旧对象的“Street1”不同:
<form:input path="topObject.address.addressLine1" />
我的问题是设置器 setAddress() 在这种情况下永远不会被调用以进行绑定(在调试器中验证)。有什么解决办法吗?