如何根据Spring MVC中的请求参数定制Jackson JSON序列化
问题描述:
我正在开发一个项目,我们想要将custom ContextAttributes传递给Jackson ObjectMapper#writer()
方法。如何根据Spring MVC中的请求参数定制Jackson JSON序列化
基本上我在想像一些位于控制器和序列化之间的全局代码段。它应该看看HttpServletRequest,获取一个参数然后钩入序列化。
编写自定义HttpMessageConverter似乎不够,因为它无法访问请求。
答
您可以访问请求这样
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
if (ra instanceof ServletRequestAttributes) {
HttpServletRequest request = ((ServletRequestAttributes)ra).getRequest();
}
或者,您可以从您的自定义HttpMessageConverter一个ThreadLocal存储和acccess添加过滤器与存储请求。
答
您可以创建一个过滤器并将其应用于所有网址,并实现过滤器中的逻辑。该过滤器可以访问请求对象
public class FilterName extends GenericFilterBean {
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) {
//TODP
}
}
,这增加了安全XML
谢谢你,为我工作。 – user1915201