[JAVA] Versuchen Sie Spring Boot von 0 bis 100.

Ich entschied mich für geschäftliche Zwecke und begann zu studieren. Er ist ein kompletter Amateur und liegt oft falsch. Von Zeit zu Zeit aktualisiert. ]]

Teil 1 "Index.html mit Springboot anzeigen"

・ Ich verwende das MVC-Modell. ・ Implementiert bei STS. -Erstellen Sie ein Spring Starter-Projekt für Package Explorer. -Wählen Sie SpringBootDevTools, springweb und Thymeleaf als Abhängigkeiten

  • Ein Paket wird in src / main / java erstellt und application.java wird standardmäßig erstellt. Da main in application.java enthalten ist, beginnt die Ausführung hier ・ Legen Sie den Controller in die Verpackung
  • Platzieren Sie die Ansicht in src / main / resources / template.

Erster Controller Schreiben Sie @ Controller, da dies ein Controller ist Antworten Sie auf Anforderungen, die eine Verbindung zum Kontextstamm (http : // localhost: 0808 /) herstellen möchten, mit der Annotation @ RequestMapping.

@Controller
public class ClassName {
		 @RequestMapping(value = "/")
}
	  

Kommentar: Es ist ein Controller mit @controller @ RequestMapping (value = "Schrägstrich steht für Kontextstamm")

@ RequestMapping beginnt mit der Arbeit, wenn der Wertepfad mit der Anforderung übereinstimmt. Die Aufgabe besteht darin, die Methode zu verschieben. So wie es ist, gibt es keine Methode Methode hinzugefügt! !!

@Controller
public class ClassName {
		 @RequestMapping(value = "/")

  public String respons() {
		   return "index.html";
  }

}

Kommentar: @ RequestMapping (value = "/") gefolgt von der Antwortmethode (beliebiger Name) funktioniert

 public String void respons() {
		   return "index.html";
 }

Durch Festlegen der Rückkehr zu index.html wird index.html im Browser angezeigt. Wenn Sie dies in main.html ändern, wird natürlich main.html unter Vorlage angezeigt.

Index.html kann übrigens weggelassen werden.

 public String respons() {
		   return "index";
 }

Teil 2 "Versuchen Sie es mit Tymeleaf"
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 th:text="${res}"></h1>
</body>
</html>

Kommentar: Ich habe das HTML-Tag kopiert. Wenn Sie dies schreiben, können Sie die Option th im h1-Tag verwenden. Der Inhalt von "$ {res}" wird im Browser angezeigt Schreiben Sie den Inhalt von "res" in Java

Als nächstes kommt Java

package com.samle.spring;

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

@Controller
public class Sample {

	@RequestMapping(value="/")
	public ModelAndView sample() {
		ModelAndView mod = new ModelAndView();
		mod.setViewName("sample");
		mod.addObject("res", "hello world");
		return mod;
	}
}

Der Unterschied zu Teil 1 ist der Typ namens Model And View Die Beispielmethode gibt diesen Mod zurück.

Mit anderen Worten, der im Mod gepackte Wert wird im Browser angezeigt.

Woher gibst du den Mod zuerst zurück? Beschreiben Sie, wohin Sie zurückkehren sollen Diesmal ist es sample.html

mod.setViewName("sample");

Führen Sie als Nächstes zwei Dinge gleichzeitig aus

  1. Da der Mod noch leer ist, fülle den Wert.
  2. Entscheiden Sie, wo die gepackten Werte in sample.html angezeigt werden sollen
mod.addObject("res", "hello world");

Im ersten Argument war "res" HTML, "$ res" Die zweite enthält die anzuzeigenden Zeichen.

Hoffentlich sollte Hello World angezeigt werden

Teil 3 "Dynamische Anzeige mit Anforderungsparametern"

Verwenden Sie anschließend "Senden", um die Anzeige zu ändern. Es wird immer komplizierter, also schauen wir es uns Schritt für Schritt an.

1. Geben Sie den Kontextstamm in das URL-Feld ein. Erhalten Sie eine Anfrage mit sample.java
@Controller
public class Sample {
	
	@RequestMapping(value="/")
	public String index() {
		return "sample";
	}

Rufen Sie sample.html wie in Teil 1 auf.

2.html wird angezeigt
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

 <form action="/req">
  	<p>Nachname</p><input type="text" name="firstName"><br>
  	<p>Name</p><input type="text" name="lastName">
  	<button type="submit">Senden</button>
  </form>

 <h1 th:text="${res}"></h1>
</body>
</html>

Zu diesem Zeitpunkt ist th: text = "$ {res}" leer und wird nicht angezeigt.

3. Fügen Sie Zeichen in Text ein und senden Sie

Da die Aktion des Formular-Tags / req ist, setzen Sie es in Java und empfangen Sie die Eingabe

4. Empfangen Sie den übermittelten Wert
@RequestMapping(value="/req")
	   public ModelAndView respons(@RequestParam("firstName") String first,
			                       @RequestParam("lastName") String last) {

		   ModelAndView mod = new ModelAndView();
		   mod.setViewName("sample");
		   mod.addObject("res", "vollständiger Name" + first + " " + last + "Herr.");
		   
		   return mod;
	   }

Wenn Sie es erhalten, können Sie es erhalten, indem Sie @ RequestMapping (value = "/ req) eingeben.

Der Rest ist der gleiche wie in Teil 2.

Wenn Sie Ihren vollständigen Namen angeben können, werden Sie Erfolg haben!

package com.samle.spring;

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

@Controller
public class Sample {
	
	@RequestMapping(value="/")
	public String index() {
		return "sample";
	}

	@RequestMapping(value="/req")
	   public ModelAndView respons(@RequestParam("firstName") String first,
			                       @RequestParam("lastName") String last) {

		   ModelAndView mod = new ModelAndView();
		   mod.setViewName("sample");
		   mod.addObject("res", "vollständiger Name" + first + " " + last + "Herr.");
		   
		   return mod;
	   }
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

 <form action="/req">
  	<p>Nachname</p><input type="text" name="firstName"><br>
  	<p>Name</p><input type="text" name="lastName">
  	<button type="submit">Senden</button>
  </form>

 <h1 th:text="${res}"></h1>
</body>
</html>

Sie können sich trennen, indem Sie zwei @ RequesrMapping in die Beispielklasse schreiben.

Teil 4 "Java-Argumente vereinheitlichen" Bei dieser Rate sind bei 30 Eingaben die Argumente ebenfalls 30. In einem solchen Fall wird @ModelAttribute verwendet Verwenden Sie wie folgt
package com.samle.spring;

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

@Controller
public class Sample {
	
	
	@RequestMapping(value="/")
	public String index() {
		return "sample";
	}
	
	


/*
Neue Inhalte von hier
*/
	@RequestMapping(value="/req")
	   public ModelAndView respons(@ModelAttribute Param p) {

		   ModelAndView mod = new ModelAndView();
		   mod.setViewName("sample");
		   mod.addObject("res", p);
		   
		   return mod;
	  }
	
	
	public static class Param{
		private String firstName;
		private String lastName;
			
		public String getFirstName(){ 
			return firstName; 
		}
		
		public String getLastName(){
			return lastName; 
		}
		
		public void setFirstName(String firstName) {
			this.firstName = firstName;
		}
		
		public void setLastName(String lastName) {
			this.lastName = lastName;
		}
	 }
}

Erläuterung: ```java @RequestMapping(value="/req") public ModelAndView respons(@ModelAttribute Param p) {
	   ModelAndView mod = new ModelAndView();
	   mod.setViewName("sample");
	   mod.addObject("res", p);
	   
	   return mod;
  }
 Wenn modelAttribute in das Argument geschrieben ist, ist ein Objekt, das dem Namen nach modelAttribute entspricht, neu.
 Mit dem obigen Code ist gleichzeitig mit der p-Instanz der param-Klasse neu
 Stellen Sie den Wert des Anforderungsparameters ein
 Dann packe die p Instanz in mod

 Um den Inhalt abzurufen, schreiben Sie "$ {res.name}".
 Als nächstes kommt HTML

```html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <form action="/req">
  	<p>Nachname</p><input type="text" name="firstName"><br>
  	<p>Name</p><input type="text" name="lastName">
  	<button type="submit">Senden</button>
  </form>

  <div th:if="${res}">
  <h1 th:text=" 'Sie sind' + ${res.firstName} + ' ' + ${res.lastName} + 'nicht wahr' "></h1>
  </div>
</body>
</html>

Der Unterschied zu Teil 3 ist hier

<div th:if="${res}">
  <h1 th:text=" 'Sie sind' + ${res.firstName} + ' ' + ${res.lastName} + 'nicht wahr' "></h1>
  </div>

th: if ist false, wenn der Inhalt von res null ist und nicht im div-Tag gelesen werden kann. Der Grund dafür ist Da der Inhalt von $ {res.firstName} leer ist, wenn er zum ersten Mal im Kontextstamm angezeigt wird Weil es zu einem Fehler führen wird. Muss eingeschlossen werden, wenn verhindert werden soll, dass $ {res.firstName} gelesen wird

Recommended Posts

Versuchen Sie Spring Boot von 0 bis 100.
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
Die Geschichte des Übergangs von Spring Boot 1.5 zu 2.1
Änderungen bei der Migration von Spring Boot 1.5 auf Spring Boot 2.0
Änderungen bei der Migration von Spring Boot 2.0 zu Spring Boot 2.2
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
Versuchen Sie, die Migration mit Spring Boot Flyway zu automatisieren
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
Einführung in Spring Boot Teil 1
Versuchen Sie es mit Spring Boot Security
Versuchen Sie Spring Boot auf dem Mac
So stellen Sie Spring Boot + PostgreSQL ein
Verwendung von ModelMapper (Spring Boot)
Versuchen Sie, Spring Boot auf Kubernetes auszuführen
Spring Boot ab Null Teil 2
Spring Boot ab Null Teil 1
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
[Einführung in Spring Boot] Überprüfung der Formularvalidierung
02. Ich habe eine API erstellt, um eine Verbindung von Spring Boot zu MySQL (My Batis) herzustellen.
Ändern Sie die Spring Boot REST API-Anforderung / Antwort von CamelCase in SankeCase
Fordern Sie Spring Boot heraus
Versuchen Sie es mit Spring Boot mit VS-Code
Was ich bei der Migration von der Spring Boot 1.4-Serie zur 2.0-Serie getan habe
Übergang von Struts2 zu Spring MVC (Controller)
Was ich bei der Migration von der Spring Boot 1.5-Serie zur 2.0-Serie getan habe
Versuchen Sie Spring Boot 1 (Umgebungskonstruktion ~ Tomcat-Start)
Spring Boot Form
Spring Boot Denken Sie daran
gae + frühlingsstiefel
So teilen Sie eine Spring Boot-Nachrichtendatei
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
[Reverse] Spring Security (von Zeit zu Zeit aktualisiert)
Verwenden Sie den Thymeleaf-Textvorlagenmodus von Spring Boot
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So verkleinern Sie das Spring Boot Docker-Image
Versuchen Sie, den CORBA-Dienst von Spring (Java) aus aufzurufen.
Rails Tutorial Kapitel 1 Von Null bis Bereitstellung [Try]
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Versuchen Sie die LDAP-Authentifizierung mit Spring Security (Spring Boot) + OpenLDAP
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Einführung in Spring Boot + In-Memory Data Grid
Berühren Sie alle "Anleitungen" des Frühlings (von Zeit zu Zeit aktualisiert)
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
Ich wollte Spring Boot in einem Multiprojekt gradle
Versuchen Sie, Hallo Welt mit Frühling + Gradle anzuzeigen
Wenden Sie Twitter Bootstrap 4 mithilfe von Webjars auf Spring Boot 2 an
◆ Rufen Sie die von Spring Boot erstellte API von React ab
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
SPRING BOOT Lernaufzeichnung 01
Änderungen von Java 8 zu Java 11
Frühlingsstiefel + Heroku Postgres
Summe von Java_1 bis 100
Versuche Edelstein freizugeben
1. Starten Sie Spring Framework von 1
Migrieren Sie von JUnit 4 zu JUnit 5