バリデーション ============== Xitrumは、クライアントサイドでのバリデーション用に `jQuery Validation plugin `_ を内包し、サーバーサイドにおけるバリデーション用のいくつかのヘルパーを提供します。 デフォルトバリデーター ---------------------- ``xitrum.validator`` パッケージには以下の3つのメソッドが含まれます: :: check(value): Boolean message(name, value): Option[String] exception(name, value) もしバリデーション結果が ``false`` である場合、 ``message`` は ``Some(error, message)`` を返却します。 ``exception`` メソッドは ``xitrum.exception.InvalidInput(error message)`` をスローします。 バリデーターは何処ででも使用することができます。 Actionで使用する例: :: import xitrum.validator.Required @POST("articles") class CreateArticle { def execute() { val title = param("tite") val body = param("body") Required.exception("Title", title) Required.exception("Body", body) // Do with the valid title and body... } } ``try`` 、 ``catch`` ブロックを使用しない場合において、バリデーションエラーとなると、 xitrumは自動でエラーをキャッチし、クライアントに対してエラーメッセージを送信します。 これはクライアントサイドでバリデーションを正しく書いている場合や、webAPIを作成する場合において便利なやり方と言えます。 Modelで使用する例: :: import xitrum.validator.Required case class Article(id: Int = 0, title: String = "", body: String = "") { def isValid = Required.check(title) && Required.check(body) def validationMessage = Required.message(title) orElse Required.message(body) } デフォルトバリデーターの一覧については `xitrum.validator パッケージ `_ を参照してください。 カスタムバリデーターの作成 -------------------------- `xitrum.validator.Validator `_ を継承し、 ``check`` メソッドと、 ``message`` メソッドのみ実装することでカスタムバリデーターとして使用できます。 また、 `Commons Validator `_ を使用することもできます。