Регулярное выражение Spring RequestMapping: пересылать все URL без точки [.] В индекс. html - PullRequest
0 голосов
/ 17 июня 2020

Этот контроллер отображает все, что не имеет точки, в index. html. Это пока я не добавлю /. Тогда, к сожалению, это больше не соответствует. Как мне отредактировать RequestMapping или регулярное выражение, чтобы разрешить несколько '/' в URL-адресе?

    @RequestMapping(value = "/{path:[^\\.]*}")
    public String redirect(@PathVariable("path") String path) {     
        return "forward:/";
    }

Однако как только добавляется еще один forward-sla sh (subdir), он не соответствует. 1005 *

/image.jpg не соответствует (хорошо)

/about соответствует (хорошо)

/about/me не соответствует (плохо)

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Кажется, я ответил на свой вопрос. Публикация здесь сообщений для всех, кто борется.

@GetMapping(value = "/**/{regex:[-a-zA-Z0-9]*}")
public String forward404() {
    return "forward:/";
}

Регулярное выражение выше допускает любой URL, но последний раздел (бит после последнего /) может быть только -, a-z, A-Z или 0-9. Это означает, что . будет удален и позволит контроллеру по умолчанию обслуживать его.

0 голосов
/ 17 июня 2020

В @RequestMapping("/**"), чтобы написать несколько "/" в вашем URL-адресе

Это решает вашу проблему предоставления нескольких косых черт в URL

  • / hello / world /
  • / welcome / wel / com / me

Каждый тестовый пример будет пройден

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...