0

我的应用程序中有一个具有组合ID的实体。
在我的控制器中,我使用@PathVariable以下方式获取此实体:

@RequestMapping("/{year}/{code}")
public MyCustomObj get(@PathVariable Integer year, @PathVariable Integer code){
    return myCustomObjRepository.findOne(new CustomId(year, code));
}

是否有可能使用类似的组件WebArgumentResolver使我的方法以这种方式工作:

@RequestMapping("/{customObj}")
public MyCustomObj get(@PathVariable CustomId id){
    return myCustomObjRepository.findOne(id);
}

具有如下 URL:/application/2013/06

4

1 回答 1

0

您可以通过注册自定义过滤器并覆盖 doFilterMethod 来做到这一点,如下所示。

 public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain chain){
 HttpServletRequest request = (HttpServletRequest) arg0;
 HttpServletResponse response = (HttpServletResponse) arg1;
 String args = request.getRequestURI();
 //get your year and code
 MyCustomObj obj = new CustomId(year, code);
 response.sendRedirect("someURL/obj");
 }
于 2013-06-26T13:11:38.747 回答