Validation ========== Xitrum bao gồm `jQuery Validation plugin `_ để kiểm tra kiểu ở phía client và cung cấp các bộ kiểm tra kiểu cho phía server. Validator mặc định ------------------ Xitrum cung cấp sẵn validator trong package ``xitrum.validator``. Chúng có những hàm sau: :: check(value): Boolean message(name, value): Option[String] exception(name, value) Nếu validation báo lỗi, hàm ``message`` sẽ trả về ``Some(error message)``, hàm ``exception`` sẽ throw ``xitrum.exception.InvalidInput(error message)``. Bạn có thể sử dụng validator bất cứ đâu. Ví dụ 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) // Làm gì đó với title và body đúng... } } Nếu không sử dụng ``try`` và ``catch``, khi có lỗi trong quá trình validation (not pass), Xitrum sẽ tự động ``catch`` các exception và respond thông báo lỗi về phía client. Điều này giúp cho việc viết các web API hoặc sử dụng validation ở phía client tiện lợi hơn. Ví dụ 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) } Xem `package xitrum.validator `_ để có đầy đủ các validator mặc định. Tạo một validator ----------------- Kế thừa `xitrum.validator.Validator `_. Bạn chỉ phải implement 2 method ``check`` và ``message``. Bạn cũng có thể sử dụng `Commons Validator `_.