0
我想在Spring MVC應用程序中編寫自定義驗證器。我想知道是否有辦法將@Model對象傳遞給自定義彈簧驗證器?Spring MVC 3.0自定義驗證 - 通過@Model驗證器
說,我有一個Person對象和Account對象。我必須編寫一個自定義驗證器來驗證Person,但驗證依賴於Account對象和會話中的其他對象。
例如,人員不能超過3個賬戶,賬戶類型必須是特定類別且不超過3年(此值,即根據已登錄且處於會話中的配置文件,年數是動態的) 。
如何將兩個對象,特別是@Model傳遞給驗證器。
public class ServiceValidator implements Validator {
@Autowired
private ServiceDAO servicesDao;
@Override
public boolean supports(Class<?> clasz) {
return clasz.isAssignableFrom(Person.class);
}
@Override
public void validate(Object obj, Errors errors) {
Person subscriber = (Person) obj;
// How can I access @Model object here ???
}
謝謝Biju。我不認爲我可以寫我自己的validate()方法。我想知道如何通過列表作爲驗證方法簽名不支持它....'公共無效驗證(對象obj,錯誤的錯誤)'''好吧,如果我採取這種方法,我必須調用驗證程序('ServiceValidator s = new ServiceValidator()') –
aprajitha
我的應用程序中有兩個頁面。一個頁面收集人員信息(使用註釋進行驗證)和另一個頁面,我們可以在其中添加帳戶給人員。我不希望自定義驗證程序在我提交第一頁時觸發,但我需要在第二頁。我只有一個控制器。如果我將我的ServiceValidator綁定到我的唯一控制器,那麼即使提交第一頁時也會調用它。謝謝。 – aprajitha
您可以將ServiceValidator連接到您的控制器,而不是實例化它,關於何時觸發它,因爲它完全在您的控制之下(因爲您現在明確地調用驗證),您可以選擇在適當的點你的代碼 –