小编abe*_*tig的帖子

Spring @RequestParam Map <String,String>在POST方法中不起作用

从Spring文档我采取了以下内容:

public @interface RequestParam

注释,指示应将方法参数绑定到Web请求参数.支持Servlet和Portlet环境中带注释的处理程序方法.

...

如果方法参数是Map或MultiValueMap并且未指定参数名称,则使用所有请求参数名称和值填充map参数.

现在我已经为测试目的创建了一个控制器.它有一个GET和一个POST方法,每个都使用@RequestParam java.util.Map作为唯一参数.在方法体中,我只是尝试打印地图的大小.当我仅在GET方法中发送请求(GET/POST)时,映射包含任何键/值对.我在Firefox中使用Poster插件,我发送了三个参数.

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {

    @RequestMapping(value="test/method", method = RequestMethod.GET)
    @ResponseBody
    public String testmethodGet(@RequestParam Map<String, String> params) {

        System.out.println("GET: " + params.size()); // prints GET: 3   
        return "";

    }

    @RequestMapping(value="test/method", method = RequestMethod.POST)
    @ResponseBody
    public String testmethodPost(@RequestParam Map<String, String> params) {

        System.out.println("POST: " + params.size()); // prints POST: 0
        return "";

    }

}
Run Code Online (Sandbox Code Playgroud)

你们中的任何人都知道为什么@RequestParam Map不适用于POST请求,或者我是否需要更改某些内容才能使其正常工作?

谢谢.

spring-mvc http-post

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

http-post ×1

spring-mvc ×1