[JAVA] Spielen Sie das Framework Study Momo DB Update

(Referenz) Bücher, die Sie studieren https://www.amazon.co.jp/Play-Framework-2%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Java%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E9%96%8B%E7%99%BA-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798133922/ref=cm_cr_srp_d_product_top?ie=UTF8

So aktualisieren Sie eine Entität

Rauer Fluss

Die einfachste Methode ist wie folgt

  1. Suche nach ID
  2. Aktualisieren Sie den Eingabeinhalt

Code

** Suche nach der zu aktualisierenden Entität anhand der ID **

「routes」

GET     /item                       controllers.Application.setitem()

「Conotrller (Application.java)」 -Anrufansicht, um ein Eingabeformular zu erstellen.

	public static Result setitem() {
		Form<Message> f = new Form(Message.class);
		return.ok(item.render("Geben Sie die ID-Nummer ein.",f));
	}

「View (item.scala.html)」 ・ Rendern Sie die Bildschirmstruktur des Eingabeformulars ・ Wenn die Senden-Taste gedrückt wird, werden die Daten zur Bearbeitung gesendet. ・ Ursprünglich müssen Name und Nachricht dieses Mal nicht eingegeben werden. Da sie jedoch aufgrund von Anmerkungen erforderlich sind, werden sie ausgeblendet.

@(msg:String,form1:Form[models.Message])//Geben Sie form1 eine Formularfunktion

@main("Sample Page"){

    <h1>input ID Number</h1>
    <p>@msg</p>
    @helper.form(action = routes.Application.edit){

      @(helper.inputText(
        field = form1("id")//Formular wird ausgegeben
      ))
      <input type="hidden" value = "dummy" name="name"/>
      <input type="hidden" value = "dummy" name="message"/>

      <input type="submit">
    }
}

** Geben Sie den zu aktualisierenden Inhalt ein **

「routes」

POST    /edit                       controllers.Application.edit()

「Conotrller (Application.java)」 -Aufrufansicht, um den Eingabestatus der von der ID-Suche betroffenen Entität zu rendern.

	public static Result edit() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message obj = f.get();//Der eingegebene Wert wird in obj eingegeben
			Long id = obj.id;//ID aus obj extrahieren
			obj = Message.find.byId(id);//Suchen Sie nach einer Entität anhand der ID und geben Sie das Suchergebnis in obj ein
			if (obj != null) {
				f = new Form(Message.class).fill(obj);//Integrieren Sie die eingegebene Entität in das Formular
				return ok(edit.render("ID=" + id + "Bearbeiten Sie den Beitrag.", f));
			} else {
				return ok(item.render("ERROR:ID-Beitrag nicht gefunden.", f));
			}
		} else {
			return ok(item.render("ERROR:Es liegt ein Problem mit der Eingabe vor.", f));
		}
	}

「View (edit.scala.html)」 · Rendern Sie die Bildschirmstruktur des Eingabeformulars mit der eingegebenen Entität ・ Wenn die Sendetaste gedrückt wird, werden Daten zur Aktualisierung gesendet.

@(msg:String,form1:Form[models.Message])

@main("Sample page"){

   <h1>Update Data</h1>
   <p>@msg</p>
   @helper.form(action=routes.Application.update){
      <input type="hidden" value="@form1("id").value" name="id"/>//Die zu aktualisierende Entität wird angegeben

      @(helper.inputText(
          field = form1("name")
      ))

      @(helper.inputText(
          field = form1("mail")
      ))

      @(helper.textarea(
          field = form1("message")
      ))

      <input type="submit">
   }
}

** Aktualisieren Sie die eingegebenen Daten **

「routes」

POST    /update                     controllers.Application.update()

「Conotrller (Application.java)」 ・ Aktualisieren Sie die Daten und wechseln Sie mit Rückkehr zum ersten Bildschirm

	public static Result update() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message data = f.get();
			data.update();
			return redirect("/");
		} else {
			return ok(edit.render("ERROR:Bitte nochmal eingeben.", f));
		}
	}

So löschen Sie eine Entität

** Empfangsbildschirm löschen **

「routes」

GET     /del                        controllers.Application.delete()
POST    /remove                     controllers.Application.remove()

「Conotrller (Application.java)」

	public static Result delete() {
		Form<Message> f = new Form(Message.class);
		return ok(delete.render("Nummer zum Löschen", f));
	}
}

「View (delete.scala.html)」 ・ Rendern Sie den Löschempfangsbildschirm ・ Wenn die Sendetaste gedrückt wird, werden Daten zum Entfernen gesendet.

@(msg:String,form1:Form[models.Message])

  @main("Sample Page"){

    <h1>delete data</h1>
    <p>@msg</p>
    @helper.form(action = routes.Application.remove){

      @(helper.inputText(
          field = form1("id")
      ))

    <input type="hidden" value="dummy" name="name"/>
    <input type="hidden" value = "dummy" name="message"/>

    <input type="submit">
  }
}

** Prozess löschen **

	public static Result remove() {
		Form<Message> f = new Form(Message.class).bindFromRequest();
		if (!f.hasErrors()) {
			Message obj = f.get();
			Long id = obj.id;
			obj = Message.find.byId(id);
			if (obj != null) {
				obj.delete();
				return redirect("/");
			} else {
				return ok(delete.render("ERROR:Die ID-Nummer wurde nicht gefunden.", f));
			}
		} else {
			return ok(delete.render("ERROR:Bei der Eingabe ist ein Fehler aufgetreten", f));
		}
	}

Recommended Posts

Spielen Sie das Framework Study Momo DB Update
Spielen Sie die Framework-Studie
Play Framework Study Memo Database ①
Spielen Sie Framework2.5 (Java) -Tipps
Spielen Sie den Framework-Lerntest
spielen Framework persönliche Notizen
Persönliche Notizen des First Play Framework
Einführung von Dozer to Play Framework
Validierungsfunktion in Play Framework