4

RESTful サービスを実装しており、a に渡す前に、インターセプターで XSD に対して XML を検証したいと考えていCastorUnmarshallerます。WebRequestInterceptorただし、一度しか読み取れないリクエストボディを読み取らなければならないため、アンマーシャラーは読み取れません。それを行う方法はありますか?

コントローラーで検証とアンマーシャリングの両方を手動で実行できることはわかっていますが、それをアン@RequestBody <DomainObject>マーシャルする方法を使用したいと思います。

または、別の解決策としてCastorUnmarshaller、xsd に対して検証するように指示する方法はありますか?

4

3 に答える 3

0

@Beforeおそらくアスペクト(春のAOP)を付けることができます。そこで、コントローラーメソッドに渡されたものと同じリクエスト本文パラメーターを取得できます。

もう1つのオプションは、本文を複数回読み取ることをサポートするリクエストにリクエストをラップすることです(最初にキャッシュすることによって)

于 2012-04-23T21:19:51.070 に答える
0

フィルターを使用して、渡された XML を検証することもできます。 org.springframework.oxm.castor.CastorMarshallerには、入力および出力ドキュメントの検証を有効にする検証プロパティがあります。ただし、Spring-MVC のデフォルト マーシャラーで有効にするには、解決する必要があります。

于 2012-04-24T12:43:03.263 に答える