Servlet Mapping Issue - PullRequest
       1

Servlet Mapping Issue

0 голосов
/ 06 сентября 2011

У меня есть веб-приложение на основе Spring.В контроллере я указал следующее:

@RequestMapping(value = "/foo/index.html", method = RequestMethod.GET)
public ModelAndView handleIndex(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    return new ModelAndView("public/foo/index");
}

Приложение web.xml mapping сервлета:

<servlet-mapping>
    <servlet-name>jib</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

Когда я делаю запрос к http://myhost/foo/index.hml все работает нормально, но когда я пытаюсь вызвать http://myhost/foo/ - я получаю ошибку 404.

Мой вопрос заключается в том, как я могу обработать http://myhost/foo/ запрос точно, как я обрабатываю http://myhost/foo/index.html запрос?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Вы ничего не отображаете в / foo, только /foo/index.html.Вероятно, вы могли бы научить ваш tomcat / jboss / что угодно перенаправлять запросы в index.html для каталогов, но это не произойдет автоматически.

Как указывает @BalusC, добавление index.html может сделать это (хотя яЯ уверен, что это уже по умолчанию tomcat).Стоит попробовать.

0 голосов
/ 14 сентября 2011

Хорошо, решение показано ниже

  1. Изменить раздел отображения сервлетов в файле web.xml

    <servlet-mapping>
    <servlet-name>jib</servlet-name>
    <url-pattern>/</url-pattern>
    

  2. Изменить параметр значения @RequestMapping:

    @RequestMapping(value = {"/foo/", "/foo/index.html"}, method = RequestMethod.GET)
    public ModelAndView handleIndex(HttpServletRequest request,
    HttpServletResponse response) throws Exception {
    return new ModelAndView("public/foo/index");
    }
    

Теперь метод handleIndex обрабатывает все запросы для / foo / и / foo / index.html paths

Надеюсь, это кому-нибудь поможет

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