假设我有课:
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
方法来完成,即它只会通过不同的方式转换输入字符串。
但是如果Elephant
里面Peacock
有一些其他的物体呢?在那种情况下,似乎我不能propertyEditor
为他们写 s ,而只能为他们的Trunk
,Tail
和Beak
?.. 我完全糊涂了。