HandlerInterceptorAdapter preHandle 拦截并重写 post 请求 json参数 @Requestbody 完整接收数据
时间: 2024-02-03 12:01:39 浏览: 97
可以使用 `HandlerInterceptorAdapter` 的 `postHandle` 方法来拦截请求并重写响应体中的 JSON 参数。具体实现可以参考以下示例代码:
```java
public class CustomInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
if (modelAndView != null && modelAndView.getModel().containsKey("data")) {
Object data = modelAndView.getModel().get("data");
if (data instanceof Map) {
Map<String, Object> map = (Map<String, Object>) data;
map.put("newParam", "newParamValue");
modelAndView.addObject("data", map);
}
}
}
}
```
在上述代码中,我们首先判断 `modelAndView` 中是否包含名为 `data` 的参数。如果包含,则判断其类型是否为 `Map`。如果是,则将其转换为 `Map` 类型,并向其中添加一个名为 `newParam` 的新参数。最后,将修改后的 `data` 参数再次存入 `modelAndView` 中。这样就实现了在拦截器中拦截 post 请求并重写响应体中的 JSON 参数的功能。
阅读全文