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 Spring MVC@RequestMapping头只能接受一个值?_Spring Mvc_Http Headers_Content Type - Fatal编程技术网

Spring mvc Spring MVC@RequestMapping头只能接受一个值?

Spring mvc Spring MVC@RequestMapping头只能接受一个值?,spring-mvc,http-headers,content-type,Spring Mvc,Http Headers,Content Type,这将有助于: @RequestMapping(value = "/test", method = RequestMethod.POST, headers = {"content-type=application/json"}) { ....... } 如果我像下面那样向它添加另一个值,那么它将失败并告诉我: 请求的资源不允许使用指定的HTTP方法 (不支持请求方法“POST”) 我猜这是因为Spring认为这两个内容类型值有“和”的关系,但我希望它们是“或” 有什么建议吗 谢

这将有助于:

@RequestMapping(value = "/test", method = RequestMethod.POST,
    headers = {"content-type=application/json"}) {
    .......
}
如果我像下面那样向它添加另一个值,那么它将失败并告诉我:

请求的资源不允许使用指定的HTTP方法 (不支持请求方法“POST”)


我猜这是因为Spring认为这两个内容类型值有“和”的关系,但我希望它们是“或”

有什么建议吗


谢谢

您是否尝试过执行
content-type=application/json、application/xml

不确定它是否会起作用,但在那里放两个
内容类型
标题,我想只有一个会赢


如果您使用的是Spring 3.1.x,则可以在同一方法上使用两个
RequestMapping
注释,并使用不同的
内容类型
标题?

。您可以查看使用消费生成@RequestMapping注释的属性。以下是关于改进的Spring博客帖子:

上面文档中的代码片段:

@RequestMapping(value="/pets", headers="Content-Type=application/json")
public void addPet(@RequestBody Pet pet, Model model) {
    // ...
}
替换为:

@RequestMapping(value="/pets", consumes="application/json")
public void addPet(@RequestBody Pet pet, Model model) {
    // ...
}
此外,如果您需要多种介质类型。
您可以执行以下操作:

produces={"application/json", "application/xml"}

consumes={"application/json", "application/xml"}

“content type=application/json,application/xml”成功了!谢谢@dave G Method只接受了一个
@RequestMapping
,我在这里有一个疑问-当我编写
products=“application/xml”
时,它仍然给出了错误406。但是如果write
生成=“application/xml”,headers={“Content Type=application/xml”}
,那么一切都可以正常工作。所以我的问题是,为什么
生成的
不足以返回XML响应,而需要
标题来完成任务。
produces={"application/json", "application/xml"}

consumes={"application/json", "application/xml"}