我有一个当前的解决方法,用于接受我的控制器中的JSON和URL参数,但它导致我的代码中出现多余的重复。这就是我所拥有的:
@RequestMapping(value="/apicall" method=RequestMethod.POST, consumes"application/json") @ResponseBody
public Object apiCallJSON(ServletWebRequest request, @RequestBody @Valid Object inputs) {
return apiCall(request, inputs);
}
@RequestMapping(value="/apicall" method=RequestMethod.POST, consumes"!application/json") @ResponseBody
public Object apiCallURLEncoded(ServletWebRequest request, @ModelAttribute @Valid Object inputs) {
return apiCall(request, inputs);
}
private Object apiCall(ServletWebRequest request, Object inputs) {
//code to run
}
是否有更自然的方式来促进JSON之间的选项(根据请求正文中的定义,因此使用@RequestBody
)和URL参数(根据定义不在正文中,因此必须使用{{1 }}?