如何区分基于json属性的两个请求处理程序方法,如@ RequestMapping.params对请求参数的作用?

时间:2016-06-09 10:40:34

标签: java spring spring-mvc

我有一个url端点/example/{id}/update,它在其正文中接受带有JSON的HTTP请求(PUT)。问题是,这个url需要处理两个不同的json对象。

所以我想有两个不同的Spring Request Handler方法来处理这两个json对象。如果这是一个简单的http表单请求,我可以使用RequestMapping.params来分隔它们:

@RequestMapping(value="/example/{id}/update", method=RequestMethod.PUT, params={"a.x", "!b.x"} )
@ResponseBody
public Response updateTypeA(@Valid JsonA a) {...}

@RequestMapping(value="/example/{id}/update" method=RequestMethod.PUT, params={"!a.x", "b.x"} )
@ResponseBody
public Response updateTypeA(@Valid JsonB b) {...}

但是因为我的请求是一个在其正文中有json对象的请求(不是参数),我无法让params工作。

所以我的问题是:有没有办法根据请求体中是否存在json属性来区分两个请求处理程序方法(对于同一个URL)?

当然我可以实现自己的调度请求处理程序方法,但这会使一切(验证......)如此痛苦

0 个答案:

没有答案