什麼可以爲構建在Spring 2.5爲企業應用程序驗證框架構建在Spring 2.5
中端企業級的業務應用程序中編寫驗證層最好的策略,我知道,Spring提供的設施,我們可以實現Validator接口和寫驗證方法中的驗證邏輯。但是,這將僅限於通過彈簧控制器發出的Web請求。
我想開發可在Web服務調用期間使用的驗證框架。
換句話說,框架可以保持並獨立調用,無需實現Validator接口,然後它可以自動集成到Spring MVC流程中。
希望你明白我的觀點。
什麼可以爲構建在Spring 2.5爲企業應用程序驗證框架構建在Spring 2.5
中端企業級的業務應用程序中編寫驗證層最好的策略,我知道,Spring提供的設施,我們可以實現Validator接口和寫驗證方法中的驗證邏輯。但是,這將僅限於通過彈簧控制器發出的Web請求。
我想開發可在Web服務調用期間使用的驗證框架。
換句話說,框架可以保持並獨立調用,無需實現Validator接口,然後它可以自動集成到Spring MVC流程中。
希望你明白我的觀點。
Spring驗證框架可以在Spring MVC之外使用。您使用什麼WebServices堆棧?如果您在使用Spring-WS(Spring的Web服務棧),他們對如何在這裏設置驗證特別說明:
http://static.springframework.org/spring-ws/sites/1.5/reference/html/server.html#d0e2313
如果您使用的是一些其他的堆棧,它可能是更容易實現的東西該堆棧(或找到一個)將使用Spring的驗證框架。
回想一下,驗證程序接口定義了兩種方法:
boolean supports(Class clazz)
void validate(Object target, Errors errors)
的Object target
是表單對象,這是要顯示給用戶的代表頁面整個對象。錯誤實例將包含將顯示給用戶的錯誤。
因此,您需要做的是定義一箇中介,您可以使用表單中的特定內容來調用您想要驗證哪些內容與您的Web服務中的內容相同。中介可以採取兩種形式:
(可能是最好的):
public interface ErrorReturning {
public void getErrors(Errors errors);
}
(這會變得非常惡劣的真快,如果是添加兩種以上的狀態):
public interface ValidationObject {
public Errors getErrors(Errors errors);
public Object getResultOfWebServiceValidation();
}
我會建議實施第一種方法。通過您的常見驗證,可以直接傳遞可用於Web服務驗證的對象,但允許其實施getErrors()
方法。這樣一來,在你驗證了春天,您的驗證方法中,你可以簡單地調用:
getCommonValidator().validate(partialObject).getErrors(errors);
您的Web服務是圍繞着調用getCommonValidator().validate(partialObject)
用於在Web服務中使用的直接對象。
第二種方法是這樣的,儘管接口只允許從給定對象返回一個對象用於Web服務驗證對象,而不是該對象本身是可用的Web服務驗證對象。