Не могли бы вы сказать мне, что не так с моим отображением запроса? - PullRequest
2 голосов
/ 13 января 2012

Я пытаюсь сделать сопоставление запросов для контроллера дома.У моего домашнего контроллера есть метод:

@RequestMapping(value = "/create", method = RequestMethod.GET)
public ModelAndView Create(Locale locale, Model model)
{
    return new ModelAndView("create");
}

И мой преобразователь вида настраивается следующим образом:

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the   /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

И в папке есть представление: views /create.jsp

Гиперссылка в домашнем контроллере создается с помощью этого кода:

<p><a href = "/create">New topic</a></p>

Но, когда я нажимаю на гиперссылку, я получаю ошибку# 404.

1 Ответ

3 голосов
/ 13 января 2012

Если ваш сервер находится в папке http://localhost/AppName/ и вы перенаправляете на индекс с помощью

<p><a href = "/create">New topic</a></p>

вы получите http://localhost/create вместо http://localhost/AppName/create.

Второе:

У меня была такая же проблема, как вы описали здесь, и она была решена, как только я сопоставил представления с расширениями.

Так что в моем случае:

@RequestMapping(value = "/create.html", method = RequestMethod.GET)
public ModelAndView Create(Locale locale, Model model)
{
    return new ModelAndView("create");
}

и ваш диспетчерский сервер должен быть:

 <servlet>
    <servlet-name>SomeServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SomeServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

Может быть, это не поможет, но просто попробуйте. Я не могу объяснить, почему это произошло, но это просто решило мою проблему.

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