Lift CRUDify でMappedDateを正しく(?)扱う
以前ブログエントリに書いたCRUDifyは、ちょっとしたデータを作る時とかに便利。ただ、日付あるいは時刻型(MappedDate, MappedDateTime)のフィールドにうまく値が設定できなかった。MM/dd/YYYYで入力したんだけど…
で、解決方法は、文字列を日付にパースするメソッド及び日付を文字列にするメソッドをそれぞれおオーバーライドする。
object dateField extends MappedDate(this) { import java.text.{SimpleDateFormat, ParseException} import java.util.Date val dateFormat = new SimpleDateFormat("yyyy/MM/dd") override def format(d: Date): String = dateFormat.format(is) override def parse(s: String): Box[Date] = { try { Full(dateFormat.parse(s)) } catch { case e: ParseException => Empty } } }