2014-12-06 66 views
2

我正在使用Spring MVC創建一個小型驗證應用程序。我對Spring MVC很新,希望確保我想要的是可能的。獲取所有帶註釋的類並調用每種方法以獲取返回值

我簡化了我的問題。

我已經設置了一個控制器,當一個URL被執行時會被調用。 localhost/validate/{SOME TEXT}

{SOME TEXT}將值發送到我創建的所有驗證類。 我現在有4個班,其確實驗證,並返回有關驗證過程中所發生的事情的另一個對象數據

4驗證類:

CreditCardValidator 
AddressValidator 
ZipcodeValidator 
AccountNumberValidator 

我有一個主控制器豆調用,當我想要的將字符串傳遞給每個類,並從每個類返回的對象進行存儲,然後最終將所有結果發回給響應。

通常,我會在沒有Spring的情況下通過創建每個驗證類實現的接口來執行此操作。然後迭代類的列表並執行一個方法。

這樣做的問題是,無論何時我需要添加一個新的驗證類,我都需要註冊它,以便請求可以使用它。這涉及到修改現有的類。

因爲我在這個應用程序中使用Spring很快,所以我想知道這是否可以通過Spring和註釋類來完成。

我想創建一個自定義註釋,每個驗證類都有,然後使用spring組件掃描來獲取類。這將允許我在不修改現有代碼的情況下創建新的驗證。

以下是我想要做的。

@Controller 
public class StringValidationController { 

    @RequestMapping(value = "/validate/{text:.+}", method = RequestMethod.GET) 
    public ModelAndView index(@PathVariable("text") String text) { 

     ModelAndView model = new ModelAndView(); 
     model.setViewName("index"); 
     model.addObject("result", getListOfValidatedData()); 

     return model; 

    } 

    public List getListOfValidatedData(){ 
     //Scan for IValidator annotation 
     //call each concrete class and pass in text 
     // get object with has validation information in it 
    } 

} 
+0

也許這將有助於:http://www.javacodegeeks.com/2013/07/spring-mvc-custom-validation-annotations.html – yname 2014-12-06 06:40:48

回答

0

here,如果你想獲得它通過Spring或here做,如果你可以使用第三方解決方案。

相關問題