Form<MyForm> form1 = new Form(MyForm.class);Formは、見ればわかるように総称型を使ってクラスを指定するようになっています。これは、データの保管用に組み込まれるクラスです。先ほど作成したMyFormを利用しますので、Form<MyForm>という形で宣言をし、new Formする際にMyForm.classを引数に指定してやります。これで、フォームの値をMyFormで保管するFormインスタンスができあがります。
Form<MyForm> form1 = new Form(MyForm.class).bindFromRequest();このように処理が書かれていますね? これにより、作成されたFormインスタンスに、送信されたフォームの値がバインドされます。bindFromRequestは、フォームの値をForm内のMyFormに組み込んだインスタンスを返す働きをするメソッドです。
MyForm data = form1.get();これで、FormからMyFormインスタンスが取り出されます。このMyFormの値を調べれば、フォームの値がわかるというわけです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※MyForm.javaソースコード
package forms;
public class MyForm {
public String input;
}
※Applicaiton.javaソースコード
package controllers;
import forms.*;
import play.*;
import play.mvc.*;
import play.data.*;
import views.html.*;
public class Application extends Controller {
public static Result index() {
String title = "Play Sample";
String message = "何か書いてください。";
Form<MyForm> form1 = new Form(MyForm.class);
return ok(index.render(title, message, form1));
}
public static Result sendform() {
Form<MyForm> form1 = new Form(MyForm.class).bindFromRequest();
String title = "Play Sample";
MyForm data = form1.get();
String message = "あなたは、「" + data.input + "」と書きました。";
return ok(index.render(title, message, form1));
}
}
※routesの記述
GET / controllers.Application.index()
POST /sendform controllers.Application.sendform
| << 前へ |