LoginSignup
4
4

More than 5 years have passed since last update.

PlayFramework1.2 - Validationエラー発生時、フォームに入力値を再表示する

Posted at

やりたいこと

PlayFramework 1.2.7を使ったアプリケーションで、validationエラー発生時にフォームに入力値を再表示する

環境

  • java version:1.7.0_45
  • PlayFramework:1.2.7

方法1:入力画面のアクションにリダイレクトする

公式ドキュメント(テンプレートへのエラーの表示)に記載されている方法です。

リダイレクトの間にエラーを保持する特別なトリックが必要になります。
validation.keep() メソッドを使用してください。
このメソッドは、次のアクションのためにエラーコレクションを保持します。

Sample1.java
if(validation.hasErrors()) {
    //リダイレクトの間エラーを保持する
    validation.keep();
    //入力パラメータをflashに詰める
    params.flash();
    //入力画面のアクション(index)にリダイレクトする
    index();
}

※最初はこの方法を試しましたが、フォームへの入力値が一定量を超えた段階でブラウザが動かなくなってしまったため断念し、
 方法2に切り替えました。

方法2:入力画面のテンプレート名を指定してレンダリングする

入力パラメータはテンプレートスコープの変数として受け渡します。
他のアクションにリダイレクトするわけではないため、エラー内容を保持するトリックは必要ありません。

Sample2.java
if(validation.hasErrors()) {
    render("@index", param1, param2, param3);
}

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4