Pogreška kružnog puta prikaza

1. Uvod

U ovom ćemo uputstvu pogledati kako dolazimo do i rješavamo pogreške puta kružnog pogleda u Spring MVC aplikaciji.

2. Ovisnosti

Da bismo to demonstrirali, napravimo jednostavan web projekt Spring Boot. Prvo, moramo dodati ovisnost o pokretaču web pokreta Spring Boot u našu datoteku projekta Maven:

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

3. Reproduciranje problema

Zatim, kreirajmo jednostavnu aplikaciju Spring Boot s jednom Kontroler koji se rješava na jedan put:

@Controller javna klasa CircularViewPathController {@GetMapping ("/ path") javni put niza () {return "path"; }}

Povratna vrijednost je ime pogleda koje će proizvesti podatke o odgovoru. U našem slučaju, povratna vrijednost je staza koji je povezan sa put.html predložak:

  put.html 

put.html

Nakon što pokrenemo poslužitelj, možemo reproducirati pogrešku podnošenjem GET zahtjeva za // localhost: 8080 / put. Rezultat će biti pogreška putanje kružnog pogleda:

{"timestamp": "2020-05-22T11: 47: 42.173 + 0000", "status": 500, "error": "Interna pogreška poslužitelja", "message": "Put kružnog pogleda [put]: poslao bi natrag na trenutni URL obrađivača [/ path]. Provjerite postavku ViewResolver! (Savjet: To je možda rezultat neodređenog prikaza zbog zadanog generiranja imena pogleda.) "," path ":" / path "} 

4. Rješenja

Prema zadanim postavkama Spring MVC okvir primjenjuje InternalResourceView klasa kao razrješivač prikaza. Kao rezultat, ako je @GetMapping vrijednost je ista kao i pogled, zahtjev neće uspjeti s pogreškom puta kružnog pogleda.

Jedno od mogućih rješenja bilo bi preimenovanje pogleda i promjena povratne vrijednosti u metodi kontrolera.

@Controller javna klasa CircularViewPathController {@GetMapping ("/ path") javni put niza () {return "path2"; }}

Ako ne želimo preimenovati prikaz i promijeniti povratnu vrijednost u metodi kontrolera, drugo je rješenje odabrati drugi procesor prikaza za projekt.

Za najčešće slučajeve možemo odabrati mehanizam predloška Thymeleaf Java. Dodajmo i opruga-čizma-starter-majčina dušica ovisnost o projektu:

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

Nakon obnove projekta možemo ga ponovno pokrenuti i zahtjev je uspješan. U ovom slučaju, Thymeleaf zamjenjuje InternalResourceView razred.

5. Zaključak

U ovom smo vodiču pogledali pogrešku puta kružnog pogleda, zašto se to događa i kako riješiti problem. Kao i uvijek, puni izvorni kôd članka dostupan je na GitHub-u.


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