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 trycatch, 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 checkmessage.

Bạn cũng có thể sử dụng Commons Validator.