我有处理形式提交控制器方法:
@RequestMapping(method = {RequestMethod.POST})
public String submitForm(...){...}
但是,我有一个新的测试用例:
如果表具有参数ProductData
呼叫控制器方法submitFormWithProductData
。 而我面对这种困难,因为ProductData
是一个Map
。 现场ProductData
在表单字段标签的样子:
<input type="text" name="productData['param1']">
<input type="text" name="productData['param2']">
我不知道,如何建立正确的@RequestMapping
用于注释submitFormWithProductData
方法。
我努力了:
@RequestMapping(method = {RequestMethod.POST}, params="productData")
和
@RequestMapping(method = {RequestMethod.POST}, params="productData[]")
但我没有成功。
productData
必须是一个模型对象的属性。
public class FormModel {
private Map<String,String> productData = ...;
...
}
根据这一点,你必须创建一个这样的处理方法:
@RequestMapping(....)
public String submitFormWithProductData(FormModel formModel) {
....
}
弹簧将所述productData参数自动绑定到在所述根据属性FormModel
对象。
但我不知道为什么你要以不同的方式处理它。 你可以添加一个隐藏的输入字段productDataSubmitted
并添加以下处理:
@RequestMapping(method = {RequestMethod.POST}, params="productDataSubmitted")
使用@RequestBody Map<String,String> productData
作为参数INT控制器方法。
这里是一个博客和更多...
例如:
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes="application/json")
public void submitForm(@RequestBody Map<String,String> productData, Model model) {
// implementation omitted
}