NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Honza
Člen
Avatar
Honza:23.1.2017 13:45

Ahoj, začínám dělat v Java EE (Spring, Hibernate, Maven) první aplikaci a narazil jsem na potřebu odchytávat výjimku 404. Jediné co chci je přesměrovat uživatele na statickou stránku, když zadá neexistující adresu (resp. když zadá adresu kterou neobsluhuje žádný controller). Narazil jsem na řadu návodů, ale nic se mi nepovedlo na 100% zprovoznit. Navíc se často v návodu vyskytuje nastavení pomocí souboru web.xml ale ten já v projektu nemám. Místo něj tam je application.pro­perties

Aktuálně mám řešení, kdy jsem si udělal třídu GlobalExcepti­onHandler která by měla výjimku odchytávat:

GlobalExcepti­onHandler :

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.NoHandlerFoundException;


@ControllerAdvice
public class GlobalExceptionHandler extends RuntimeException {


        @ExceptionHandler(NoHandlerFoundException.class)
        @ResponseStatus(HttpStatus.NOT_FOUND) //404
        public String handleError404() {

                return "pageNotFound"; // název view
        }
}

A do souboru application.pro­perties jsem přidal:

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

Když to mám takhle tak se to při zadání neexistující adresy sice přesměruje na správný view, ale na žádné stránce (vůbec na žádné) se mi nestáhnout css a javascripty.
Dostávám chybové hlášky typu: No mapping found for HTTP request with URI [/css/main.css] in DispatcherServlet with name 'dispatcherSer­vlet'

Kdyby mě někdo popostrčil byl bych velice vděčný. Tipuju že to je nějaká prkotina, ale nějak nemůžu přijít na to jaká :)

Díky

Odpovědět
23.1.2017 13:45
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.