[JAVA] Comment afficher les caractères saisis dans Spring Boot sur le navigateur et les liens de référence [Introduction à Spring Boot / Pour les débutants]

Hypothèses et environnement

J'étudie comment utiliser le framework Java Spring Boot. Cette fois à Spring Boot *** Sortie des caractères saisis *** Maintenant que je peux le faire, je vais l'écrire comme un mémorandum pour moi et pour les débutants.

Comme il était plein de termes que je n'avais jamais vus auparavant, tels que des variables et des méthodes qui apparaissent en cours de route, je vais l'expliquer un peu.

environnement: ・ Windows10 · Éclipse · Java 8 ・ Sortie de Spring Boot 2.0.4 ・ Thymeleaf ・ Maven

Présentation de Spring Boot

Installez STS à partir de l'aide Eclipse> Marketplace. Cet article est incroyablement facile à comprendre. [Développement d'applications Web à partir de Spring Tool Suite (STS) et Spring Boot (1)](https://www.techscore.com/blog/2016/11/22/start-with-sts-and-spring-boot- 1 /) Si vous procédez selon cet article, tout va bien. Les dépendances sont Thymeleaf, Maven, Web uniquement. Suivez cet article pour Hello, World!.

Afficher les caractères saisis sur le navigateur

Suivez la suite de l'article lié ci-dessus. C'est devenu difficile à comprendre à partir d'ici, je vais donc l'expliquer.

Tout d'abord, jouons avec le fichier créé pendant Hello, World!.

--Edit HelloController.java (pas vraiment bien, mais réutilisez-le) --Modifier index.html

*** Explication de la notation de base ***

Modification de Controller.java

HelloController.java


package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

//C'est un contrôleur! Notez que
@Controller
public class HelloController {
    //RequestMapping "/"→ Peut être appelé lors de l'accès à l'URL racine
    //→ Vous pouvez spécifier une méthode pour chaque adresse d'accès!
    @RequestMapping(value="/",method=RequestMethod.GET)
    //Un modèle pratique qui peut mettre à la fois le modèle et la vue (peut être une valeur de retour)
    public ModelAndView index(ModelAndView mav) {
        //Afficher les paramètres de nom
        mav.setViewName("index");
        //Définissez la valeur (msg) et le caractère de sortie correspondant
        mav.addObject("msg", "S'il vous plaît entrez votre nom:");
        return mav;
    }

    @RequestMapping(value="/",method=RequestMethod.POST)
    //"name"Récupérez les paramètres POSTed et prenez-les comme argument
    public ModelAndView send(@RequestParam("name")String name,ModelAndView mav) {
        mav.setViewName("index");
        mav.addObject("msg", "Hello,"+name+"!");
        //Entrez le nom (valeur d'entrée) dans la valeur
        mav.addObject("value",name);
        return mav;
    }
}

Ce qui précède est le code source du contrôleur. (Si vous voulez savoir ce qu'est un contrôleur, recherchez "Java MVC"!) Puisqu'il s'agit d'une classe Java de la source principale, créez-la dans src / main / java.

Je l'écris habituellement sous forme de commentaire, mais les termes que je ne comprends pas sont les suivants.

Quelle est la différence entre @Controller et @RestController?

Cet article sera utile. Diverses valeurs de retour sur le contrôleur Spring MVC

En bref @Controller est principalement utilisé pour les contrôleurs de pages Web, @RestController est utilisé séparément Il paraît que. Ma tête n'a pas encore rattrapé, mais j'ai en quelque sorte compris ce que je voulais dire, donc ensuite.

Qu'est-ce que ModelAndView?

ModelAndView est une fonction de Spring MVC, et est une classe qui peut gérer ensemble "View" (objet à afficher à l'écran) et "Model" (objet pour échanger des valeurs avec la vue). En plaçant ModelAndView dans l'argument, vous pouvez utiliser toutes les informations ensemble. Super pratique.

Qu'est-ce que setViewName?

setViewName est "celui qui définit le nom de la vue". En définissant le nom de la vue sur «« index »dans setViewName, la vue nommée index sera utilisée. Alors, qu'est-ce qu'un nom de vue? Il semble qu'il y ait plusieurs choses, alors je vais enquêter la prochaine fois. Omis.

Puisque le moteur de modèle Thymeleaf est utilisé ici, l'ensemble «" index "» est reconnu comme un modèle Thymeleaf (templates / index.html). La vue (partie d'affichage de l'écran) est générée sur la base des informations de ce nom de vue.

Donc, mettez ce "" ViewName "" et les caractères de sortie nommés "" msg "" ensemble dans la classe ModelAndView mav. C'est le bon point de ModelAndView. Donc, si vous renvoyez le "mav", vous pouvez envoyer le "ViewName" et le "msg" ensemble au côté client.

Qu'est-ce que Thymeleaf?

Un moteur de modèle tel que HTML.

Une bibliothèque pour traiter des programmes basés sur des modèles HTML appelés modèles et les afficher à l'écran. Aux fins de la division du travail entre les programmeurs et les concepteurs Web, le traitement est effectué en interprétant et en exécutant des balises spéciales. Smarty est un exemple typique de PHP. [Extrait du dictionnaire Weblio](https://www.weblio.jp/content/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3 % 83% 88% E3% 82% A8% E3% 83% B3% E3% 82% B8% E3% 83% B3)

Ainsi, ce qui suit est facile à comprendre sur les fonctionnalités de Thymeleaf. Qu'est-ce que Thymeleaf Le fait est que contrairement au JSP qui est affiché après le traitement, il est décrit par des valeurs d'attribut, de sorte qu'il peut être affiché normalement sans traitement et il semble être facile à voir après tout.

Modifier index.html

Maintenant que vous l'avez compris jusqu'à présent (même dans Zackri), éditez index.html.

index.html


<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Hello Page</title>
</head>
    <body>
        <!-- th:le texte est spécifié sous forme de texte dans Thymeleaf,${}Est une variable-->
        <p th:text="${msg}">please wait...</p>
        <form action="/" method="post">
        <input type="text" name="name" th:value="${value}" >
        <input type="submit" value="Click">
        </form>
    </body>
</html>

Mettez le HTML dans le fichier modèle. src/main/resources>templates

Ce fichier HTML est écrit en notation Thymeleaf, n'est-ce pas? Pour la notation Thymeleaf, ces deux articles sont faciles à comprendre. Maîtrisez complètement Thymeleaf avec l'échantillon minimum requis Syntaxe d'expression standard de Thymeleaf

Avec ceci comme référence, je l'ai écrit et copié.

Exécutez le projet en tant qu'application Spring Boot dans cet état.

Écran de résultat

SpringBoot入力文字出力.PNG

J'ai pu passer la valeur en toute sécurité!

Recommended Posts

Comment afficher les caractères saisis dans Spring Boot sur le navigateur et les liens de référence [Introduction à Spring Boot / Pour les débutants]
[Spring Boot] Comment créer un projet (pour les débutants)
Introduction du livre: Spring Boot Livre de référence recommandé pour les débutants!
Comment ajouter un chemin de classe dans Spring Boot
Comment écrire un test unitaire pour Spring Boot 2
Comment créer un projet Spring Boot dans IntelliJ
Comment afficher un aperçu du navigateur avec VS Code
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Comment faire coexister CsrfRequestDataValueProcessor et RequestDataValueProcessor original sur Spring Boot
[Pour les débutants] Comment déboguer avec Eclipse
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Comment afficher une page Web en Java
Connectez-vous aux applications Web Spring Boot sur la plate-forme Microsoft ID
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL
Comment se lier avec un fichier de propriétés dans Spring Boot
De la création d'un environnement cloud AWS au déploiement d'une application Spring Boot (pour les débutants)
Jusqu'à ce que vous créiez un projet Spring Boot dans Intellij et que vous le transmettiez à Github
Comment implémenter le processus d'authentification en spécifiant le nom d'utilisateur et le mot de passe dans Spring Boot
[Mémo de travail de l'application personnelle] Comment afficher un graphique à barres et un graphique linéaire dans un graphique
[Swift] Comment afficher les caractères saisis sur le Widget via UserDefaults lors de l'utilisation du WidgetKit
Explication de Ruby on rails pour les débutants ④ ~ À propos des règles de dénomination et comment utiliser form_Tag ~
Plans pour prendre en charge JDK 11 pour Eclipse et Spring Boot
Comment définir l'injection de dépendance Spring Boot (DI)
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Pour les débutants] Exemple minimum pour afficher RecyclerView en Java
[Introduction à Spring Boot] Soumettez un formulaire à l'aide de thymeleaf
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment modifier la valeur de paramètre de application.properties au moment du démarrage dans Spring Boot
Comment développer et enregistrer une application Sota en Java
Présentation de Spring Boot2, un framework Java pour le développement Web (pour les débutants)
Comment créer et lancer un Dockerfile pour Payara Micro
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Introduction à Spring Boot ① ~ DI ~
Introduction à Spring Boot ② ~ AOP ~
Introduction à Spring Boot, partie 1
Incontournable pour les débutants! Manière spécifique de gérer les projets X-code sur Github
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
[Astuces] Comment résoudre les problèmes avec XCode et Swift pour les débutants
Comment définir et utiliser un profil avec une configuration basée sur des annotations dans le framework Spring
Comment charger un fichier de téléchargement Spring et afficher son contenu
Comment stocker les informations saisies dans la zone de texte dans une variable de la méthode
Écrivons un code de test pour la fonction de connexion avec Spring Boot
Comment installer confortablement JDK 11 dans votre Mac
Comment utiliser Lombok au printemps
Comment configurer Spring Boot + PostgreSQL
Comment utiliser ModelMapper (Spring boot)
Comment appliquer immédiatement les modifications de Thymeleaf au navigateur avec #Spring Boot + maven
Spring.messages.fallback-to-system-locale: false est requis pour le message par défaut.properties pour la prise en charge i18n de Spring Boot
Comment tester une méthode privée et la simuler partiellement en Java
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Solution de contournement pour que Command Line Runner fonctionne avec JUnit dans Spring Boot
Comment afficher les messages d'erreur et les messages de réussite lors de l'inscription en tant qu'utilisateur
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
(Pour les débutants) [Rails] Technologie de gain de temps! Comment installer et utiliser Slim
Exécutable serveur avec Spring gradle Comment créer JAR et WAR