ユーザ登録・編集画面の実装
リクエストパラメータにIDが指定押されているかどうかに応じて以下の処理を行います。
リクエストパラメータにIDなし ⇒ 新規登録画面を表示します。 リクエストパラメータにIDあり ⇒ USERSテーブルを検索し、該当のユーザ情報を初期表示した編集画面を表示します。 フォーム 画面からの入力値を受け取るためのFormをコントローラに定義します。Formは必ずしもコントローラに定義する必要はないのですが、コントローラでの処理に強く依存するため特に理由がない限りコントローラ内に定義するとよいでしょう。
まず、UserControllerの冒頭に以下のインポート文を追加します。これでFormの定義や基本的なバリデーションができるようになります。
import play.api.data._ import play.api.data.Forms._ 登録・編集画面からの入力値を受け取るためのFormを定義します。
object UserController extends Controller { // フォームの値を格納する case class UserForm(id: Option[Long], name: String, companyId: Option[Int]) // formのデータ⇔ケースクラスの変換を行う val userForm = Form( mapping( "id" -> optional(longNumber), "name" -> nonEmptyText(maxLength = 20), "companyId" -> optional(number) )(UserForm.apply)(UserForm.unapply) ) ... POINT
FormはStrutsのアクションフォームのようなものです マッピングに従ってバリデーション(後述)が行われます ビュー 続いてviews.