现在有三个 Goods 表单类
GoodsForm1
GoodsForm2
GoodsForm3
均继承自GoodsForm
。GoodsForm
里面存放的公用字段,各自则存放的独有字段。通过一个接口传入表单,能否自动识别绑定参数至Goods1
、Goods2
或 Goods3
?
public Object addGoods(@Validated GoodsForm goodsForm, BindingResult result) {
if(goodsForm instanceof GoodsForm1) {
// DO STH...
}
}
还是说只能造三个接口。但是以后如果继续扩展怎么办,继续往下加感觉不优雅
1
leon0903 2019-02-19 10:46:23 +08:00
没试过 但是感觉使用父类去绑定不同的子类是行不通的。
|
2
fuxinya OP @leon0903 暂时的方案:不让 Spring 自动绑定了,手动用 JSON 工具去解析 body,根据 type 解析成不同的 GoodsForm。暂时先这样吧
|
3
smeraldo 2019-02-19 11:20:42 +08:00 3
|
5
fuxinya OP 感谢 @smeraldo 的方案,已解决。不过项目里用的是阿里的 fastjson,可以使用 @JSONType 注解,支持 seeAlso 配置
具体请参照文档 [JSONType_seeAlso_cn]( https://github.com/alibaba/fastjson/wiki/JSONType_seeAlso_cn) |
6
leon0903 2019-02-19 14:34:07 +08:00
我也长见识了 谢谢各位
|