Обработка запроса из нескольких методов

В настоящее время я работаю над приложением с весенней загрузкой. Мои пользовательские данные хранятся в репозитории. Обычно я прикрепляю данные пользователя к каждому контроллеру (это необходимо, если пользователь аутентифицирован). Но если я введу несопоставленный URL-адрес, данные не будут переданы по логике, и моя страница с ошибкой 404 не загрузится правильно.

Я не могу просто использовать

@RequestMapping(value = "**",method = RequestMethod.GET)
    public String getAnythingelse(){
    return "redirect:/404.html";
}

потому что я обрабатываю свои URL-адреса для разных классов контроллеров.

Это приводит к вопросу, как я могу решить эту проблему?

У меня было бы две теоретические попытки, но я не знаю, как бы это сделать: 1) Каким-то образом присвойте методу map-something очень низкий приоритет, чтобы он был вызван в конце. 2) Вызовите метод map-something, кроме того, как заставить систему вызывать и другие методы.

Обновлено: даже если я добавлю его, например, мой контроллер индекса, он сделает сайт полностью неформатированным.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
42
2

Ответы 2

Что ж, вы можете создать DefaultController для своего проекта и использовать аннотацию RequestMapping поверх этого. Я пробовал этот фрагмент кода:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "**")
public class DefaultController {

    @RequestMapping(method = RequestMethod.GET)
    public String getAnythingElse(){
        return "redirect:/404.html";
    }

}

Я думаю, что он делает именно то, что вы хотите, но в моем случае это прерывает мою чванливость.

Это не будет работать для @RestController, но только для @Controller.

NiVeR 27.09.2018 15:54

Я думаю, что этот код может помочь вам создать собственную страницу с ошибкой: https://gist.github.com/jonikarppinen/662c38fb57a23de61c8b

Другие вопросы по теме