2012-01-24 20 views
2

WebアプリケーションにSpring MVCを使用しています。 私は、ユーザーが入力したURLが有効であることを検証する必要があり、Springの中で私のために基本的なチェックができるものがあるかどうか疑問に思っていました(例えばhttp/httpsで始まり、ドメイン名などあります)。Spring MVCでURLを検証するベストプラクティス?

ValidationUtilsは、ごく基本的なチェックが含まれていると私はしかし、それはケースの誰かがすでにそれ:)

おかげ

答えて

3

UrlValidatorからapache commonsで終了しました。

0

使用行っているINM避けることを好むvalidate()メソッドで正規表現を書くことができます知っています春のインターセプター:過去に

http://java.dzone.com/articles/using-spring-interceptors-your

+0

私が理解する限り、SpringインターセプタはHttpRequestとHttpResponseを変更できます。もちろん、URLの有効性チェックを適用することもできますが、その場合はValidatorインターフェイスの使用をおすすめします。私の質問は、厄介なregexpを使用して私の代わりに私のURLを検証することができる春に何かがあるかどうかの詳細です。 「お尻の熊」のようなものは、純粋な春だけでHibernateで上に示されています。 – Joly

4

、私はいつもHibernate Validatorを利用してきました。フォームBeanの適切なフィールドに@URLという制約を付けるだけで、簡単に注釈を付けることができます。

以前にHibernateのORM部分を使ったことがない人は、恐怖を感じさせないでください。 Validator部分はORMの内容に依存せず、Springに統合するのはvery straightforwardです。

何らかの理由でHibernate Validatorを使用できない場合、またはあなたが気に入っているものに固執したい場合、正規表現の良い場所はRegExLib.comです。 URI are listed thereに一致するいくつかのパターン。

0

私はこの質問がかなり古くなっていることは知っていますが、私は同じことが必要で、SpringFrameworkではPropertyEditorsと一緒に行くと思います。

もっと正確には、URLEditorがあります。これを使用して、文字列表現を実際のURLオブジェクトに変換できます。

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-beans-conversion

私の場合は

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/propertyeditors/URLEditor.html

が、私は文字列が入力したかどうかを確認するために春のバリデータの中に以下のコードを使用して考える:ここ

は、それぞれのドキュメントへのリンクですユーザーは有効なURLかどうか:

try { 
     PropertyEditor urlEditor = new URLEditor(); 
     urlEditor.setAsText(field.getValue()); 
    } catch (IllegalArgumentException ex) { 
      errors.rejectValue("nameOfTheFieldToBeValidated", "url_is_invalid"); 
} 

ただし、現在のところ私はそれが私にはわかりませんどのプロトコルが有効であると受け入れるかを構成することが可能である。 URLEditorも "classpath:"で始まるURLを受け入れているようです)

+0

私はあまりにも、あなたに知らせるために、私もApacheのコモンズからUrlValidatorを使用しています。 – SebastianRiemer

関連する問題