我的应用程序中有一个具有组合 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);
}
拥有以下网址:/application/2013/06
答案 0 :(得分:1)
您可以通过注册自定义过滤器并覆盖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");
}