Chyba cesty kruhového pohľadu

1. Úvod

V tomto tutoriáli sa pozrieme na to, ako získame a vyriešime chyby cesty kruhového pohľadu v jarnej aplikácii MVC.

2. Závislosti

Aby sme to demonštrovali, vytvorme si jednoduchý webový projekt Spring Boot. Najprv musíme do nášho súboru projektu Maven pridať závislosť webového štartéra Spring Boot:

 org.springframework.boot spring-boot-starter-web 

3. Reprodukcia problému

Potom vytvorme jednoduchú aplikáciu Spring Boot s jednou Kontrolór , ktorá vedie k jednej ceste:

@Controller verejná trieda CircularViewPathController {@GetMapping ("/ path") public String path () {return "path"; }}

Návratová hodnota je názov zobrazenia, ktorý vytvorí údaje odpovede. V našom prípade je návratová hodnota cesta ktorá je spojená s cesta.html šablóna:

  cesta.html 

cesta.html

Po spustení servera môžeme chybu reprodukovať podaním žiadosti GET // localhost: 8080 / cesta. Výsledkom bude chyba cesty kruhového pohľadu:

{"timestamp": "2020-05-22T11: 47: 42.173 + 0000", "status": 500, "error": "Interná chyba servera", "správa": "Cesta kruhového výhľadu [cesta]: odošle sa späť znova na aktuálnu adresu URL obslužného nástroja [/ path]. Skontrolujte svoje nastavenie ViewResolver! (Rada: Môže to byť výsledok nešpecifikovaného zobrazenia z dôvodu generovania predvoleného názvu zobrazenia.) "," cesta ":" / cesta "} 

4. Riešenia

V predvolenom nastavení rámec Spring MVC uplatňuje InternalResourceView triedy ako prekladača pohľadov. Ako výsledok, ak @GetMapping hodnota je rovnaká ako pohľad, požiadavka zlyhá s chybou cesty v kruhovom zobrazení.

Jedným z možných riešení by bolo premenovanie pohľadu a zmena návratovej hodnoty v metóde radiča.

@Controller verejná trieda CircularViewPathController {@GetMapping ("/ path") public String path () {return "path2"; }}

Ak nechceme premenovať pohľad a zmeniť návratovú hodnotu v metóde radiča, potom ďalším riešením je výber iného procesora pohľadu pre projekt.

Pre najbežnejšie prípady môžeme zvoliť šablónový modul Java Thymeleaf. Pridajme spring-boot-starter-thymeleaf závislosť od projektu:

 org.springframework.boot spring-boot-starter-thymeleaf 

Po prebudovaní projektu ho môžeme opäť spustiť a požiadavka je úspešná. V tomto prípade Thymeleaf nahrádza InternalResourceView trieda.

5. Záver

V tomto tutoriáli sme sa pozreli na chybu cesty v kruhovom zobrazení, prečo sa to stane a ako problém vyriešiť. Celý zdrojový kód článku je ako vždy k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found