(Référence) Livres que vous étudiez 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
Comment passer la valeur à la classe du dossier des contrôleurs → la classe du dossier de vue dans l'image ci-dessous.
-Préparez une variable qui peut recevoir des arguments comme celui-ci. ・ S'il y en a plusieurs, préparez-en plusieurs. -Assurez-vous de définir le type sur le type de classe wrapper.
@(one: String ,two :String, three:String)
Décrivez la valeur que vous voulez passer de cette manière dans `ʻindex.render``.
public static Result index() {
return ok(index.render(
"Échantillon 1",
"Échantillon 2",
"Échantillon 3"
)
}
@main("échantillon") {
<h1>Hello!</h1>
<p>@one</p>
<p>@two</p>
<p>@three</p>
<p>Ceci est un échantillon</p>
@helper.form(action=routes.Application.send){<!--①-->
@(helper.inputText(<!--②-->
field = form1("message")
))
<input type="submit"><!--③-->
}
}
attribut action: spécifiez la destination des données à envoyer en appuyant sur le bouton d'envoi du formulaire. (Référence) https://qiita.com/mikuhonda/items/f3126380d3340f3d8a2b élément d'entrée: en fonction de la valeur spécifiée pour l'attribut type, il est possible de spécifier le type d'éléments de formulaire tels qu'une zone de texte sur une ligne, une case à cocher, un bouton radio, un bouton d'envoi, un bouton de réinitialisation, etc. (Référence) http://www.htmq.com/html5/input.shtml
① Appelez l'objet formulaire dans helper. L'action spécifie généralement l'adresse de destination, mais ici elle détermine la méthode à envoyer. (2) Créez une zone de texte et stockez la valeur dans le message. ③ Créer un bouton d'envoi
Réécrire comme ça
package controllers;
import play.*;
import play data.*;//PKG pour l'utilisation des aides de formulaire
import static plya.data.Form.*;//PKG pour l'utilisation des aides de formulaire
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
//Classe intérieure pour la forme
public static class SampleForm{//Inner class, une classe pour gérer les valeurs des formulaires soumis
public String message;//import type="text"Variable de stockage des valeurs de balise
//Action lors de l'accès à l'itinéraire
public static Result index(){
return ok(index.render("Écris quelque chose.",new Form(SampleForm.class)));
//Créez une instance Form en spécifiant la classe SampleForm comme argument
}
//Action lors de l'accès à envoyer
public static Result send(){
Form<SampleForm> f = form(SampleForm.class).bindFormRequest();
if(!f.hasErrors()){
}
SampleForm date = f.get();
String msg = "you typed:" + date.message;
return ok(index.render(msg,f));
}else {
return badRequest(index.render)("ERROR",form(SampleForm.class)));
}
}
}
public static Result send(){
Form<SampleForm> f = form(SampleForm.class).bindFormRequest();//①
if(!f.hasErrors()){//②
SampleForm date = f.get();//③
String msg = "you typed:" + date.message;//④
return ok(index.render(msg,f));
}else {//Informez le client qu'une erreur s'est produite
return badRequest(index.render)("ERROR",form(SampleForm.class)));
}
}
Qu'est-ce qui est contraignant: Image de l'attribution (Référence) http://wa3.i-3-i.info/word12448.html
(1) SampleForm est limité en type par les génériques. Dans bindFormRequest (), la valeur du formulaire soumis par le client est renvoyée dans l'instance de formulaire liée. Lorsque vous appuyez sur le bouton d'envoi → allez au fichier racine envoyer → l'envoi d'avril est appelé. ② Le contrôle d'erreur est entré en premier (3) En appelant get de Form, vous pouvez obtenir une instance de la classe (classe SampleForm) qui gère les informations du formulaire. ④
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / controllers.Application.index()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
POST /send controllers.Application.send()
À propos de la différence entre POST et GET → POST est utilisé lors de l'enregistrement des informations sur le serveur. GET est utilisé pour obtenir des informations du serveur. (Référence) https://qiita.com/Sekky0905/items/dff3d0da059d6f5bfabf
Recommended Posts