Validator インターフェイスが 2 つのメソッドを定義していることを思い出してください。
boolean supports(Class clazz)
void validate(Object target, Errors errors)
これObject target
は、ユーザーに表示されるページを表すオブジェクト全体です。Errors インスタンスには、ユーザーに表示されるエラーが含まれます。
したがって、必要なことは、検証したいフォームの詳細で呼び出すことができる仲介者を定義することです。これは、Web サービスと同じです。仲介者は、次の 2 つの形式のいずれかを取ることができます。
(おそらく最高):
public interface ErrorReturning {
public void getErrors(Errors errors);
}
(これは、2 つ以上の状態が追加された場合、非常に速く醜くなる可能性があります):
public interface ValidationObject {
public Errors getErrors(Errors errors);
public Object getResultOfWebServiceValidation();
}
最初のアプローチを実装することをお勧めします。共通の検証では、Web サービスの検証に直接使用できるオブジェクトを渡しますが、getErrors()
メソッドを実装できるようにします。このようにして、Spring のバリデーターで、検証メソッド内で次のように簡単に呼び出すことができます。
getCommonValidator().validate(partialObject).getErrors(errors);
getCommonValidator().validate(partialObject)
Web サービスは、Web サービスで使用される直接オブジェクトの呼び出しに基づいています。
2 番目のアプローチはこのようなものですが、オブジェクト自体が使用可能な Web サービス検証オブジェクトであるのではなく、オブジェクトが Web サービス検証オブジェクトの特定のオブジェクトから返されることのみをインターフェイスが許可します。