お世話になってます。
今、PlayframeworkのCRUD処理において編集画面より
内容変更した場合、更新ができてません。
どのような箇所が悪いのか、お分かりの方居られましたら
ご教示下さい。
尚、update以外は一通り動きます。
●編集画面(edit.scala.html)
@(message: String, sampleform: Form[SampleData]) @main("編集画面"){ <h1></h1> <p>@message</p> @helper.form(action = routes.Application.update, args ='id -> "SampleData") { @(helper.inputText( field = sampleform("name"), args = '_label -> "名 前" )) @(helper.inputText( field = sampleform("title"), args = '_label -> "表 題" )) @(helper.inputText( field = sampleform("memo"), args = '_label -> "メ モ" )) <input type="submit" value="登 録"> } <p><a href="/">[HOME]</a><p> <hr> }
●controller
import play.api.db.*; //import java.io.*; import com.avaje.ebean.*; import org.apache.commons.lang3.StringUtils; import static play.data.Form.*; import play.db.ebean.*; import forms.*; import play.mvc.Http.MultipartFormData; import models.SampleData; import play.*; import play.mvc.*; import play.data.*; import views.html.*; public class Application extends Controller { public Result index(){ String title = "Sample Page"; String msg = "フォームを入力"; Form<SampleData> dataform = form(SampleData.class); List<SampleData> datas = SampleData.find.all(); return ok(mynum.render( title, msg, datas, dataform)); } public Result sendform(){ Form<SampleData> dataform = form(SampleData.class).bindFromRequest(); if(!dataform.hasErrors()){ dataform.get().save(); flash(); } return redirect("/"); } public Result edit(Long id){ SampleData updata = SampleData.find.byId(id); if(updata != null){ Form<SampleData> updata_F = form(SampleData.class).fill(updata); return ok(edit.render( "", updata_F)); }else{ return redirect("/"); } } public Result delete(Long id){ SampleData.find.ref(id).delete(); flash(); return redirect("/"); } //update処理 public Result update(){ Form<SampleData> dataform = form(SampleData.class).bindFromRequest(); if(!dataform.hasErrors()){ dataform.get().update(); flash(); return redirect("/"); }else{ return badRequest(edit.render("Error",dataform)); } } }
回答1件
あなたの回答
tips
プレビュー