假設我有類:Spring MVC的抽象類結合
abstract class Animal {}
class Elephant extends Animal {
Trunk trunk;
RightEar rightEar;
}
class Peacock extends Animal {
Tail tail;
Beak beak;
}
我想寫單控制器的方法,這將有Animal
類型的參數:
@RequestMapping("/animal")
public ModelAndView animalsHandler(@ModelAttribute("animal") Animal animal) {...}
我發現,對於非通過選擇合適的propertyEditor
中的@InitBinder
方法,即它只會通過不同的方式轉換輸入字符串,它的參數是could be done。
但是如果Elephant
和Peacock
裏面有一些其他的對象呢?似乎我不能寫propertyEditor
s在那種情況下,但只爲他們Trunk
,Tail
和Beak
?..我完全困惑。
謝謝你的回答!我試圖按照你的指示,爲我的實體編寫特殊的轉換器,並將它註冊到'conversionService'中。但是當我發送請求時,有'BeanInstantiationException',它問我'是一個抽象類嗎?'。所以我必須編寫'HandlerMethodArgumentResolver'的自定義實現,我選擇一個合適的子類,然後使用'WebRequestDataBinder'手動綁定所有字段。 – Patison