Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC:@RequestMapping:如何捕获映射参数?_Spring_Spring Mvc_Model View Controller - Fatal编程技术网

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)