我遇到了以下SpringMVC問題:有一個域對象使用某個Address子對象,但getters/setters必須調整爲使用不同地址對象通過轉換。這是一個建築要求。SpringMVC Form字段需要自定義綁定
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中,我輸入文本字段綁定到新地址對象(轉換的結果),這是我們必須處理。在這個新的第二地址對象(anotherpackage.new.Address
)中,有一個字段,例如「addressLine1」,這是從舊對象的「Street1」不同:
<form:input path="topObject.address.addressLine1" />
我的問題是,二傳手,setAddress(),不會被調用在這種情況下結合(在調試驗證)。任何解決方案?
這不是一個商業需求,除非你的商業用戶也是程序員,他們'要求'你做這個特定的事情(這聽起來不太可能) 。業務需求的形式是「作爲{業務人員}我想{爲了實現業務相關的目標}以便{利益}',而且他們不應該真正談論計算機和系統。你可能意味着這是一個架構要求,這是完全不同的事情。 –
我編輯了原帖 –
爲了提供更新,我們設法使用JAXB的@XmlJavaTypeAdapter(Address.class)來獲得解決方法。這爲JAXB域對象提供了適配器。再次感謝 –