Как редактировать страницу ошибки Whitelabel весной - PullRequest
0 голосов
/ 29 апреля 2018

Я хочу только отредактировать страницу Spring White Label. Я вижу много учебных пособий по удалению этой страницы, но я хочу только изменить текст, например, Ошибка 404 - Вернитесь! Любой учебник?

Спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

Если вы используете Spring Boot версии 1.4+, пользовательские страницы ошибок могут быть названы в соответствии с их соответствующим кодом ошибки (например, 404.html) и помещены в каталог / src / main / resources / public / error для статических файлов или каталог / src / main / resources / templates / error при использовании механизма шаблонов. См. Spring Boot и пользовательскую страницу ошибки 404 для получения дополнительной информации. В качестве альтернативы вы можете выполнить следующие шаги для реализации пользовательских страниц ошибок.

Установите для свойства server.error.whitelabel.enabled значение false в файле application.properties. Это отключит страницу ошибки и покажет страницу ошибки, происходящую из базового контейнера приложения.

server.error.whitelabel.enabled=false

Создайте пользовательские страницы ошибок и сохраните их в каталоге ресурсов / шаблонов. Эти страницы могут быть созданы и названы для разных кодов состояния HTTP, например: ошибка-404, ошибка-500 и т. Д.

Создайте новый класс Controller, который реализует интерфейс ErrorController, и переопределите метод getErrorPath. Создайте сопоставление для пути, возвращаемого методом getErrorPath. Метод, который обрабатывает это сопоставление, может прочитать код ошибки и вернуть соответствующую пользовательскую страницу ошибки.

@Controller
public class MyErrorController implements ErrorController  {

    private static final String ERROR_PATH = "/error";

    @RequestMapping("/error")
    public String handleError(HttpServletRequest request) {
        Object status = 
            request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
        if (status != null) {
            Integer statusCode = Integer.valueOf(status.toString());

            if(statusCode == HttpStatus.NOT_FOUND.value()) {
                return "error-404";
            }
            else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()){
                return "error-500";
            }
        }
        return "error";
    }

    @Override
    public String getErrorPath() {
        return ERROR_PATH ;
    }
}
...