2008-09-11 44 views
0

什么可以为构建在Spring 2.5为企业应用程序验证框架构建在Spring 2.5

中端企业级的业务应用程序中编写验证层最好的策略,我知道,Spring提供的设施,我们可以实现Validator接口和写验证方法中的验证逻辑。但是,这将仅限于通过弹簧控制器发出的Web请求。

我想开发可在Web服务调用期间使用的验证框架。

换句话说,框架可以保持并独立调用,无需实现Validator接口,然后它可以自动集成到Spring MVC流程中。

希望你明白我的观点。

回答

0

回想一下,验证程序接口定义了两种方法:

boolean supports(Class clazz) 
void validate(Object target, Errors errors) 

Object target是表单对象,这是要显示给用户的代表页面整个对象。错误实例将包含将显示给用户的错误。

因此,您需要做的是定义一个中介,您可以使用表单中的特定内容来调用您想要验证哪些内容与您的Web服务中的内容相同。中介可以采取两种形式:

  1. (可能是最好的):

    public interface ErrorReturning { 
        public void getErrors(Errors errors); 
    } 
    
  2. (这会变得非常恶劣的真快,如果是添加两种以上的状态):

    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服务验证对象。