[JAVA] Play Framework étudiant la transmission de valeur

(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 recevoir une valeur du contrôleur

Comment passer la valeur à la classe du dossier des contrôleurs → la classe du dossier de vue dans l'image ci-dessous.

スクリーンショット 2018-03-18 19.33.13.png

Traitement côté dossier de vue

-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)

Comment décrire les contrôleurs

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"
        )
  }

Comment créer un formulaire à l'aide de l'assistant de formulaire

Comment écrire index.scala.html

@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

Comment décrire les contrôleurs

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)));
      }
    }
}

Traitement de la méthode d'envoi

    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. ④

Comment décrire l'itinéraire

# 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

Play Framework étudiant la transmission de valeur
Test d'étude de Play Framework
Etude Play Framework
Conseils pour Play Framework2.5 (Java)
jouer des notes personnelles de cadre
La signification du champ th: dans Thymeleaf et le mécanisme de passage des valeurs de Spring Framework