[JAVA] Memo nach dem ersten Frühjahrsprojekt-MVC-

Einführung

Nur die Grundkenntnisse in reinem Java und DB Das Spring-Projekt hat sich von Anfang an nach den Turbulenzen beruhigt. Bitte geben Sie uns Ihre Eindrücke und Ihr Memorandum. Der Inhalt des Artikels ist mehr als ein Tutorial und weniger als eine Übung. : language_balloon: Es wurde nicht bestätigt, dass der angegebene Code funktioniert, daher dient er nur als Referenz. : bete: Englisch ist rutschig, also ist Japanisch vielfältig, vergib mir. : bete :: schluchz :: bete:

Entwicklungsumgebung

Red Hat (Entwicklungsumgebung ist Cent) 7-Serie Java8 SpringBoot2.1.6 MySQL8-Serie STS

Über MVC

Wenn wir verstehen, dass wir die Logik (Modell), den Bildschirm (Ansicht) und den Controller (Controller), der sie verbindet, separat entwerfen. Im Frühjahr werden die zwischen View und Controller ausgetauschten Daten jedoch als Modell bezeichnet. Ich war besorgt, ob ich MVC überhaupt verstehen könnte, aber ich hörte auf, tief nachzudenken, weil die Definition von Wörtern für jedes Framework unterschiedlich ist. : unschuldig: https://qiita.com/yo1000/items/a6acbf5f454a7f53aef9 https://qiita.com/takasek/items/70ab5a61756ee620aee6

Regler

·Kartierung Fügen Sie der Methode "@GetMapping (" test ")" hinzu. @RequestMapping ("/ test") scheint alt zu sein.

Es scheint, dass das, was in Klammern beschrieben wird, als Attribut bezeichnet wird. Das Obige ist eine Abkürzung für "@GetMapping (path =" test ")". Wenn Sie mehrere Schaltflächen in ein Formular-Tag und einen POST einfügen möchten, können Sie diese dem params-Attribut des Controllers zuordnen, indem Sie den Namen in HTML angeben.

view.html


<form method="POST" action="path1">
    <input type="submit" name="param1" />← Hier drücken
    <input type="submit" name="param2" />
</form>

controller.java


@PostMapping(path="path1",params="param1")

** ・ Validierung ** Es ist in Abhängigkeit von der Feder vorgesehen. Wenn Sie "BindingResult" ausführen können, können Sie eine Validierung implementieren, die nicht an das Framework gebunden ist. Die meisten Dinge können jedoch mit Anmerkungen und benutzerdefinierter Validierung erledigt werden. https://qiita.com/yakumo3390/items/4e47930ba643b45b7430

Nachrichten werden auch mit eingebetteten Zeichen und mehrsprachiger Unterstützung in messages.properties bereitgestellt, aber ich konnte sie nicht verwenden, da es erforderlich war, Nachrichten in der Datenbank zu verwalten.

Durch Hinzufügen eines Gruppenattributs können Sie Validierungsziele angeben oder ausschließen. Ich habe dafür eine leere Klasse gemacht, aber ich denke, es gibt einen klügeren Weg. https://tech.asoview.co.jp/entry/2019/12/11/104928

** · Rückkehr ** Grundsätzlich handelt es sich um eine Zeichenfolge, die den Ansichtspfad darstellt. Es gibt auch Weiterleitungen und Weiterleitungen. Wenn Sie zum Zeitpunkt der Umleitung den Wert in "RedirectAttributes" packen, erreicht er das Übergangsziel. http://www.ne.jp/asahi/hishidama/home/tech/java/spring/boot/web/Controller.html#h_forward_attribute

Wenn beim Übergeben eines Objekts "toString ()" implementiert ist, kann es so übergeben werden, wie es ist, andernfalls scheint es ein Ärger zu sein. https://grandbig.github.io/blog/2016/05/28/redirect-parameter-spring-boot/

Über Ansichten

Verwenden Sie Thymeleaf (Zeitblatt). Schwer zu lesen und zu buchstabieren. : küssen: Sogenannte Vorlage. Beachten Sie, dass es eine coole Beschreibung ist, wenn Sie nicht nur den Bildschirm, sondern auch das generierte HTML überprüfen.

Obwohl das Feld th: praktisch ist, kann es in Kombination mit JavaScript, das Name und ID angeben möchte, möglicherweise nicht verwendet werden. Vielleicht möchten Sie verstehen, was Sie tun. https://qiita.com/beeeyan/items/5bd820e55cb53f176b3e

Seien Sie vorsichtig, wenn Sie Variablen in JavaScript verwenden. Ausnahmen sind schwer zu finden. Wenn Sie das gesamte Objekt verwenden, wird es auf HTML erweitert und ist nicht gut für die Sicherheit. Sie werden überrascht sein, wenn Sie es sehen. [Offizielles Dokument 12.2 Inline-Verarbeitung von Skripten (JavaScript und Dart)](https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf_ja.html#%E3%82%B9%E3%82%AF%E3% 83% AA% E3% 83% 97% E3% 83% 88% E3% 81% AE% E3% 82% A4% E3% 83% B3% E3% 83% A9% E3% 82% A4% E3% 83% B3% E5% 87% A6% E7% 90% 86-Javascript-% E3% 81% A8-Dart)

Über den Service

Wo man Geschäftslogik schreibt.

Diesmal wurde im Prinzip ein Service für eine Tabelle erstellt. Und einige Allzweckklassen. Der Zweck bestand darin, die Ebenen einzugrenzen, die auf die Datenbank zugreifen können, aber dann schwoll eine Klasse an. : Stirnrunzeln2: Es ist möglicherweise besser, einen Dienst für einen Bildschirm zu erstellen und die von der Datenbank mit Repository erfassten Daten zu verarbeiten. Oder fügen Sie eine Ebene hinzu, die die Logik für einen Bildschirm beschreibt? .. .. ?? : verwirrt: Untitled Diagram.png

Weitere Hinweise

Memo nach dem ersten Frühlingsprojekt - Was ist Frühling? Memo nach der ersten Frühjahrsprojekt-Datenbank-

Recommended Posts

Memo nach dem ersten Frühjahrsprojekt-MVC-
Memo nach dem ersten Frühjahrsprojekt-Datenbank-
Spring Boot zum ersten Mal
Spring AOP zum ersten Mal
Frühlingsrückblick Memo
JJUG CCC Frühjahr 2018 Memo
Hinweise zur Verwendung von Spring Shell
Schreiben von Frühlingsstiefel-Memos (1)
Erster Frühlingsstiefel (DI)
Schreiben von Spring Boot-Memos (2)
Lernnotiz beim ersten Lernen von Java (persönliches Lernnotiz)
Ein Buch, das nach dem Eintritt des Ingenieurs in das Unternehmen gelesen wurde
Die erste WEB-Anwendung mit Spring Boot-Making a Pomodoro Timer-
Spring Security-Nutzungsnotiz CSRF
Spring Framework Selbststudium Memo series_1
Spring Security-Nutzungsnotiz Run-As
Dies ist der erste Beitrag.
Spring Security-Nutzungsnotiz Remember-Me
Probieren Sie das Spring WebFlux-Tutorial aus
Spring Security-Nutzungsnotiz CORS
Spring Security-Verwendungsnotiztest
Memo zur Spring Boot Controller-Methode