2014-02-23 55 views
0

我正在使用spring mvc,並且仍然試圖讓我的頭繞着粘合劑,格式器和轉換器。spring mvc如何改進我的initBinder

我有一個定製綁定揹着我控制器之一...

@InitBinder 
public void initBinder(WebDataBinder webDataBinder) { 
    SimpleDateFormat df = new SimpleDateFormat(dateFormat); 
    df.setLenient(false); 
    webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(df, true)); 
} 

這種特殊的定製綁定不特定於只是形式此控制器,但是將整個應用程序到處被使用。

對我來說,爲我所有的控制器更一般地做到這一點,最好的辦法是什麼?

P.S.我有一個轉換服務,所以我可以使用它,如果它是正確的地方做到這一點。

public class ApplicationConversionServiceFactoryBean extends FormattingConversionServiceFactoryBean 

感謝

回答

1

您可以考慮使用@ControllerAdvice註解。具有此註釋的類可協助每個控制器。

所以,你可以寫這樣的事情:

@ControllerAdvice 
public class GlobalInitializer { 

    @InitBinder 
    public void globalBinder(WebDataBinder webDataBinder) { 
     SimpleDateFormat df = new SimpleDateFormat(dateFormat); 
     df.setLenient(false); 
     webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(df, true)); 
    } 
} 
+0

嗨。我使用的是spring mvc 3.1.0。我理解控制器的建議只是春天mvc 3.2。我可以使用3.1.0中有沒有類似的東西? – Richie

+0

@Richie你好!看看這個答案http://stackoverflow.com/questions/21165135/spring-mvc-one-init-binder-for-all-controllers – gipinani