Ez az anyag a „Bevezetés a vállalkozásfejlesztésbe” sorozat befejező része. Korábbi cikkek:
Nézzük meg az MVC legegyszerűbb megvalósítását a Spring MVC példaként. Ehhez írunk egy kis Hello World alkalmazást a Spring Boot segítségével. Lépésről lépésre adok utasításokat, így mindent megismételhet. Először írunk egy kis pályázatot, majd kielemezzük.
1. lépés: Spring Boot alkalmazás létrehozása az IntelliJ IDEA-ban.
Új projekt létrehozásához használja a Fájl -> Új -> Projekt… parancsot. A megnyíló ablak bal oldali menüjében válassza a Spring Initializr elemet, és válassza ki a Project SDK-t. Hagyja meg az Initializr Service URL beállítás alapértelmezett értékét.
Kattintson a "Tovább" gombra. A következő ablakban ki kell választanunk a projekt beállításait. Lesz egy Maven projektünk. Válassza ki a Maven Project típust. Töltse ki a Csoport és Műtermék mezőket Kattintson a Tovább gombra.
A következő ablakban ki kell választanunk azokat a Spring Framework összetevőket, amelyeket használni fogunk. Nekünk kettő is elég:
- A Spring Web egy olyan összetevő, amely lehetővé teszi webalkalmazások létrehozását. Ez a komponens tartalmazza a tavaszi MVC-t.
- A Thymeleaf a sablonmotorunk. Ez egy olyan dolog, amely lehetővé teszi számunkra, hogy adatokat küldjünk a Java-ból HTML-oldalakra
A következő ablakban válassza ki a projekt nevét és helyét a fájlrendszerben:
Kattintson a "Befejezés" gombra. A projekt létrejön. A következő projektstruktúrát kapjuk:
Itt 2 fájlra vagyunk kíváncsiak: pom.xml (telepítési leíró). Ezzel a funkcióval gyorsan és egyszerűen importálhat könyvtárakat különböző keretrendszerekből projektünkbe. Ugyanitt konfiguráljuk az alkalmazásunk felépítését is. Alkalmazásunk a Maven használatával készült, és a pom.xml a konfigurációs fájl ehhez a build rendszerhez. A Java osztály az MvcDemoApplication. Ez az alkalmazásunk fő osztálya. Ebből indítjuk a Spring Boot projektünket. A kezdéshez futtassa az osztály fő metódusát. Íme az osztály kódja, valamint a pom.xml fájl: MvcDemoApplication:
@SpringBootApplication
public class MvcDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MvcDemoApplication.class, args);
}
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.codegym/groupId>
<artifactId>mvc_demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mvc_demo</name>
<description>Spring MVC Demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. lépés Weboldal létrehozása
Alkalmazásunk rendkívül egyszerű lesz. Lesz egy főoldalunk (index.html), amely tartalmazni fog egy linket az üdvözlő oldalra (greeting.html). Az üdvözlő oldalon egy üdvözletet jelenítünk meg. URL-paraméterek segítségével adjuk át az üdvözletben használandó nevet a greeting.html oldalnak. Hozzuk létre alkalmazásunk főoldalát – index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Main page</title>
</head>
<body>
<p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
Most létrehozzuk a greeting.html oldalt:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
Oldalunkon van egy
<p th:text="'Hello, ' + ${name} + '!'" />
tag, ami nem normális a HTML-nél. A címke
th
attribútuma
p
a Thymeleaf sablonmotor által használt mechanizmus. A
p
címke értéke "Hello, " + a
name
változó értéke, amelyet Java kódban állítunk be.
3. lépés: Vezérlő létrehozása
Az mvc_demo csomagon belül létrehozunk egy vezérlőcsomagot, amelyben létrehozzuk a vezérlőnket, a HelloWorldControllert:
@Controller
public class HelloWorldController {
@RequestMapping(value = "/greeting")
public String helloWorldController(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
Egyrészt nagyon kevés a kód, másrészt viszont sok minden történik. Kezdjük az elemzést. A @Controller annotáció azt jelzi, hogy ez az osztály egy vezérlő. Tavasszal a vezérlők meghatározott URL-ekre irányított HTTP-kéréseket dolgoznak fel. Osztályunkban van egy helloWorldController metódus, amely a @RequestMapping(value = "/greeting") annotációval van megjelölve. Ez a megjegyzés azt jelzi, hogy ez a módszer a /greeting URL-re irányított HTTP GET kéréseket dolgozza fel. Más szóval, ez a metódus akkor lesz meghívva, ha valaki a /greeting mappába navigál. Ez a metódus egy karakterláncot ad vissza. A Spring MVC szerint a vezérlő metódusnak vissza kell adnia a nézet nevét. Ezután a Spring egy azonos nevű HTML-fájlt fog keresni, amelyet válaszként a HTTP-kérésre küld vissza. Amint látod, Módszerünk 2 érvből áll. Nézzük meg őket: 1. paraméter: @RequestParam(név = "név", kötelező = false, defaultValue = "World") Karakterlánc neve. A @RequestParam annotáció azt jelzi, hogy a String name paraméter egy URL-paraméter. Ha a megjegyzés azt jelzi, hogy ez az URL-paraméter nem kötelező (kötelező = false), akkor ha hiányzik, a String name paraméter értéke "World" (defaultValue = "World") lesz. Ha jelen van, akkor az URL paraméter a „name” lesz (név = „név”). Lehet, hogy itt sok mindent nem értesz. Mutassunk néhány példát. Az alábbi táblázat bemutatja, hogy mi lesz a String name paraméter értéke, a /greeting elérésének különféle lehetőségeivel (URL paraméterekkel és anélkül)
Példa URL |
A karakterláncnév értéke |
/üdvözlet |
Világ |
/greeting?name=Amigo |
Amigo |
/greeting?name=Zor |
Zor |
2. paraméter: A második paraméter egy modellmodell. Ez a paraméter valamilyen modell. Ez a modell különféle belső tulajdonságokból áll. Minden attribútumnak van neve és értéke. Valami olyan, mint a kulcs-érték párok. Ezzel a paraméterrel adatokat küldhetünk Java kódból HTML oldalakra. Vagy az MVC terminológiát használva küldjön adatokat a modellből a nézetbe. Már csak az utolsó sort kell megvizsgálni. Így küldünk adatokat a Java-ból a HTML-be, vagy a modellből a nézetbe. A metódus a következő sort tartalmazza:
model.addAttribute("name", name);
Itt létrehozunk egy név nevű új attribútumot, és hozzárendeljük a name paraméter értékét. Ne feledje, nemrégiben megbeszéltük a
<p th:text = "'Hello,' + ${name} + '!'" />
Azt mondtuk, hogy a p címke értéke "Hello, " + a névváltozó értéke, amelyet Java kódban fogunk beállítani. Ezt az értéket a vonal segítségével állítjuk be
model.addAttribute("name", name);
5. lépés: Fuss
A kezdéshez le kell futtatnunk az MvcDemoApplication osztály fő metódusát:
A naplókban látni fogjuk, hogy webes alkalmazásunk a 8080-as portról indult: Ez pedig azt jelenti, hogy böngészőben a
http:// címen lévő oldalra léphetünk.
localhost:8080 :
Itt van az index.html oldal. Kövessük az üdvözlő oldalra mutató hivatkozást:
Ebben az átmenetben a vezérlőnket hívták meg. Nem adtunk át paramétereket az URL-en. Ennek eredményeként a name attribútum a megjegyzésben feltüntetett alapértelmezett értéket ("Világ") veszi fel. Próbáljuk meg átadni a paramétert az URL-en keresztül:
Minden a szándék szerint működik. Most próbálja meg nyomon követni a névváltozó útvonalát:
- A felhasználó átadta a "name=Amigo" kifejezést az URL-ben ->
- A vezérlő feldolgozta a műveletünket, megkapta a névváltozót, és a kapott értékkel egy name nevű modellattribútumot állított be ->
- Ezek az adatok a modellből megtekinthetők, a greeting.html oldalra kerültek, és megjelentek a felhasználó számára
Egyenlőre ennyi!
Ma az MVC (Model - View - Controller) meglehetősen nagy és érdekes témájával ismerkedtünk meg. Ezzel véget ért a sorozat, amelynek célja, hogy bemutassa, mit kell tudnia a vállalati fejlesztés megkezdése előtt.
A megjegyzésekben írja meg, hogy mely témák érdeklik Önt – mi foglalkozunk velük! |
GO TO FULL VERSION