Spring MVC:如何修改从控制器发送的json响应
我已经使用像这样的控制器构建了一个JSON REST服务:
@Controller@RequestMapping(value = "/scripts")
public class ScriptController {
@Autowired
private ScriptService scriptService;
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List<Script> get() {
return scriptService.getScripts();
}
}
它工作正常,但现在我需要修改所有响应并将“状态”和“消息”字段添加到所有响应中。我已经阅读了一些解决方案:
- 从某个特定类的所有控制器方法对象返回,例如RestResponse,它将包含“ status”和“ message”字段(但这不是通用解决方案,因为我将不得不修改所有控制器并以新样式编写新控制器)
- 截取具有方面的所有控制器方法(但在这种情况下,我无法更改返回类型)
如果我想将控制器方法返回的值包装到类的对象中,可以提出一些其他通用且正确的解决方案:
public class RestResponse { private int status;
private String message;
private Object data;
public RestResponse(int status, String message, Object data) {
this.status = status;
this.message = message;
this.data = data;
}
//getters and setters
}
回答:
如果使用spring 4.1或更高版本,则可以在编写正文之前使用ResponseBodyAdvice定制响应。
以上是 Spring MVC:如何修改从控制器发送的json响应 的全部内容, 来源链接: utcz.com/qa/410729.html