次の SpringMVC の問題に遭遇しました。特定の Address サブオブジェクトを使用するドメイン オブジェクトがありますが、変換によって別の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 で、入力テキスト フィールドを新しいAddress オブジェクト (変換の結果) にバインドします。これを処理する必要があります。この新しい 2 番目の Address オブジェクト ( anotherpackage.new.Address
) には、古いオブジェクトの「Street1」とは異なる「addressLine1」などのフィールドがあります。
<form:input path="topObject.address.addressLine1" />
私の問題は、この場合、バインディングのためにセッター setAddress() が呼び出されないことです (デバッガーで確認)。これに対する解決策はありますか?