什么可以为构建在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服务验证对象。