Spring MVC:@RequestMapping:如何捕获映射参数?
我有处理表单提交的控制器方法:Spring MVC:@RequestMapping:如何捕获映射参数?,spring,spring-mvc,model-view-controller,Spring,Spring Mvc,Model View Controller,我有处理表单提交的控制器方法: @RequestMapping(method = {RequestMethod.POST}) public String submitForm(...){...} 但是,我有一个新的测试用例: 如果表单有参数ProductData调用控制器方法submitFormWithProductData。我在这方面面临困难,因为ProductData是一个Map。表单标记中的站点ProductData字段如下所示: <input type="text" na
@RequestMapping(method = {RequestMethod.POST})
public String submitForm(...){...}
但是,我有一个新的测试用例:
如果表单有参数ProductData
调用控制器方法submitFormWithProductData
。我在这方面面临困难,因为ProductData
是一个Map
。表单标记中的站点ProductData
字段如下所示:
<input type="text" name="productData['param1']">
<input type="text" name="productData['param2']">
及
但是我没有成功。
productData
必须是模型对象的属性
public class FormModel {
private Map<String,String> productData = ...;
...
}
Spring将自动将productData参数绑定到FormModel
对象中的相应属性
但我不知道你为什么要用不同的方式处理。您可以添加一个隐藏的输入字段productDataSubmitted
,并添加以下处理程序:
@RequestMapping(method = {RequestMethod.POST}, params="productDataSubmitted")
productData
必须是模型对象的属性
public class FormModel {
private Map<String,String> productData = ...;
...
}
Spring将自动将productData参数绑定到FormModel
对象中的相应属性
但我不知道你为什么要用不同的方式处理。您可以添加一个隐藏的输入字段productDataSubmitted
,并添加以下处理程序:
@RequestMapping(method = {RequestMethod.POST}, params="productDataSubmitted")
productData
必须是模型对象的属性
public class FormModel {
private Map<String,String> productData = ...;
...
}
Spring将自动将productData参数绑定到FormModel
对象中的相应属性
但我不知道你为什么要用不同的方式处理。您可以添加一个隐藏的输入字段productDataSubmitted
,并添加以下处理程序:
@RequestMapping(method = {RequestMethod.POST}, params="productDataSubmitted")
productData
必须是模型对象的属性
public class FormModel {
private Map<String,String> productData = ...;
...
}
Spring将自动将productData参数绑定到FormModel
对象中的相应属性
但我不知道你为什么要用不同的方式处理。您可以添加一个隐藏的输入字段productDataSubmitted
,并添加以下处理程序:
@RequestMapping(method = {RequestMethod.POST}, params="productDataSubmitted")
使用@RequestBody-Map-productData
作为控制器方法中的参数
这是一个和
例如:
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes="application/json")
public void submitForm(@RequestBody Map<String,String> productData, Model model) {
// implementation omitted
}
@RequestMapping(value=“/add”,method=RequestMethod.POST,consumes=“application/json”)
public void submitForm(@RequestBody-Map-productData,Model-Model){
//省略实现
}
使用@RequestBody-Map-productData
作为控制器方法中的参数
这是一个和
例如:
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes="application/json")
public void submitForm(@RequestBody Map<String,String> productData, Model model) {
// implementation omitted
}
@RequestMapping(value=“/add”,method=RequestMethod.POST,consumes=“application/json”)
public void submitForm(@RequestBody-Map-productData,Model-Model){
//省略实现
}
使用@RequestBody-Map-productData
作为控制器方法中的参数
这是一个和
例如:
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes="application/json")
public void submitForm(@RequestBody Map<String,String> productData, Model model) {
// implementation omitted
}
@RequestMapping(value=“/add”,method=RequestMethod.POST,consumes=“application/json”)
public void submitForm(@RequestBody-Map-productData,Model-Model){
//省略实现
}
使用@RequestBody-Map-productData
作为控制器方法中的参数
这是一个和
例如:
@RequestMapping(value = "/add", method = RequestMethod.POST, consumes="application/json")
public void submitForm(@RequestBody Map<String,String> productData, Model model) {
// implementation omitted
}
@RequestMapping(value=“/add”,method=RequestMethod.POST,consumes=“application/json”)
public void submitForm(@RequestBody-Map-productData,Model-Model){
//省略实现
}
请您解释一下为什么要这样做(以不同的方式处理请求)?也许还有另一种方法可以满足您的要求,我可以解释一下:目前,我有现成的控制器方法submitForm;然后,我在现有html表单中添加了新功能(productData Map),我需要将这些数据处理到。我无法修改oob代码,所以我刚刚创建了新方法submitFormWithProductData,但如何调用它…请您解释一下为什么要这样做(以不同的方式处理请求)?也许还有另一种方法可以满足您的要求,我可以解释一下:目前,我有现成的控制器方法submitForm;然后,我在现有html表单中添加了新功能(productData Map),我需要将这些数据处理到。我无法修改oob代码,所以我刚刚创建了新方法submitFormWithProductData,但如何调用它…请您解释一下为什么要这样做(以不同的方式处理请求)?也许还有另一种方法可以满足您的要求,我可以解释一下:目前,我有现成的控制器方法submitForm;然后,我在现有html表单中添加了新功能(productData Map),我需要将这些数据处理到。我无法修改oob代码,所以我刚刚创建了新方法submitFormWithProductData,但如何调用它…请您解释一下为什么要这样做(以不同的方式处理请求)?也许还有另一种方法可以满足您的要求,我可以解释一下:目前,我有现成的控制器方法submitForm;然后,我在现有html表单中添加了新功能(productData Map),我需要将这些数据处理到。我无法修改oob代码,所以我刚刚创建了新方法submitFormWithProductData,但如何调用它…您有:FormModel类和submitForm(FormModel)处理程序-它们是现成的,这意味着您不能修改它们,好吗?您可以添加FormWithProductDataModel扩展FormModel,同意吗?和加载项FormWithProductDataModel属性映射productData,是否同意?然后您需要在服务器端处理此表单,您不能修改默认的处理程序,因此,您将添加新方法submitFormWithProductData(FormWithProductDataModelForm),是吗?您将为新处理程序使用哪些@RequestMapping参数?您有:FormModel类和submitForm(FormModel)处理程序-它们是现成的,这意味着您不能修改它们,好吗?您可以添加FormWithProductDataModel扩展FormModel,同意吗?和加载项FormWithProductDataModel属性映射productData,是否同意?然后您需要在服务器端处理此表单,您不能修改默认处理程序,因此,您将添加新方法submitFormWithProductData(FormWithProductDataModel f)