是否可以给 Spring MVC 的表单绑定某种类型的提示来指示要实例化哪个类并用表单数据填充?
我有一些非常不寻常的要求来尝试构建一个动态表单,它代表不同对象的集合。用户可以将选择的类型中的对象添加到此集合中,然后使用表单元素设置该对象类型的属性。我可以弄清楚如何使用 jQuery 创建表单,但是当 Spring 不知道要提前绑定哪些类型时,我不确定如何让 Spring 处理大量 POST 数据。
是否可以给 Spring MVC 的表单绑定某种类型的提示来指示要实例化哪个类并用表单数据填充?
我有一些非常不寻常的要求来尝试构建一个动态表单,它代表不同对象的集合。用户可以将选择的类型中的对象添加到此集合中,然后使用表单元素设置该对象类型的属性。我可以弄清楚如何使用 jQuery 创建表单,但是当 Spring 不知道要提前绑定哪些类型时,我不确定如何让 Spring 处理大量 POST 数据。
我能想到的一种方法是编写您自己的自定义HandlerMethodArgumentResolver,它负责将请求转换为控制器方法的参数值。您应该能够创建一个自定义注释,该注释将向 Spring MVC 指示您的自定义处理程序方法参数解析器将解析特定的注释方法参数(例如@CustomType Object argument
)。
一旦调用进入处理程序解析器,您可能可以确定 json 请求应映射到的类型,并使用实际类型调用 json 映射器。
您可以通过这种方式注册自定义参数解析器:
<annotation-driven>
<argument-resolvers>
<beans:bean class="..CustomArgumentResolver"/>
</argument-resolvers>
</annotation-driven>