質問編集履歴

2 内容調整

Nitta

Nitta score 88

2019/02/12 11:30  投稿

PlayframeworkでのCRUD
お世話になってます。
今、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));
       }
   }
}
```
  • Java

    25142 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • MySQL

    12115 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Play Framework 2

    170 questions

    Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

1 内容調整

Nitta

Nitta score 88

2019/02/12 11:28  投稿

PlayframeworkでのCRUD
お世話になってます。
今、PlayframeworkのCRUD処理において編集画面より
内容変更した場合、更新ができてません。
どのような箇所が悪いのか、お分かりの方居られましたら
ご教示下さい。
尚、update以外は一通り動きます。
●編集画面
```
@(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));
       }
 
         
   }
   
}
}
```
  • Java

    25142 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • MySQL

    12115 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Play Framework 2

    170 questions

    Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る