2
我想修改一個已經用JacksonMapper填充的對象,並自動添加IP和引用URL到它,但請求始終爲空,因爲它在屬性中找不到陣列。難道我做錯了什麼?修改控制器中的@RequestBody對象從過濾器
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>
過濾器在哪裏被實例化?當你說你無法獲得這些屬性時,你的意思是在客戶端? – 2011-03-23 05:07:27
我想修改請求過濾器中的@RequestBody FollowRequest請求,然後它進入控制器,這樣我可以在該對象中擁有IP和引用。過濾器在我上面添加的web.xml中實例化。 – 2011-03-23 15:57:12