gpt4 book ai didi

spring-mvc - 从过滤器修改Controller中的@RequestBody对象

转载 作者:行者123 更新时间:2023-12-02 04:10:29 25 4
gpt4 key购买 nike

我想修改一个已经用JacksonMapper填充的对象,并自动向其添加IP和Referrer URL,但是该请求始终为空,因为在属性数组中找不到该请求。难道我做错了什么?

ApiController.java

@RequestMapping(value="/member/follow")
public @ResponseBody IHttpResponse follow(@RequestBody FollowRequest request) {
return request.getHttpResponse();
}

ApiRequestWrapper.js
public class ApiRequestWrapper extends HttpServletRequestWrapper
{
public ApiRequestWrapper(HttpServletRequest request) {
super(request);

if(this.getAttribute("request") instanceof IHttpRequest)
{
IHttpRequest httpRequest = (IHttpRequest) this.getAttribute("request");

if(httpRequest != null)
{
httpRequest.setIp(request.getRemoteAddr());
httpRequest.setReferrer(request.getLocalName());
}
}
}
}

Web.xml
<filter>
<filter-name>apiFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
<filter-name>apiFilter</filter-name>
<url-pattern>/api/*</url-pattern>
</filter-mapping>

最佳答案

与RequestBody对应的对象是在调用该方法之前创建的-无法在过滤器中获取它。您可以通过实现一个方面来实现您想做的事情。

关于spring-mvc - 从过滤器修改Controller中的@RequestBody对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com