2013-06-26 178 views
0

我的應用程序中有一個實體,其組成爲ID
在我的控制,我得到使用@PathVariable這樣這個實體:Spring @PathVariable Spring創建自定義對象

@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

+0

你介意使用過濾器的http重定向嗎? – shazinltc

+1

[在春天將路徑變量綁定到自定義模型對象]可能的重複(http://stackoverflow.com/questions/17149425/bind-path-variables-to-a-custom-model-object-in-spring) – vincentks

+0

Ops ...我沒有看到它...所以這個問題可以被關閉......謝謝 – rascio

回答

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"); 
}