Не найдено сопоставление для HTTP-запроса с URI? - PullRequest
0 голосов
/ 08 февраля 2012

Привет У меня есть следующий код: Контроллер:

@ Контроллер

public class HelloWorldController {

    @RequestMapping("/hello")
        public ModelAndView HelloWorld() {
            String message = "My First SpringMVC Program ";
            return new ModelAndView("hello","message",message);
        }

web.xml

<servlet>
            <!-- load on startup is used to determine the order of initializing the servlet when the application
            server starts up. The lower the number, earlier it starts -->
            <servlet-name>spring</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

spring-servlet.xml

<context:component-scan 
base-package="org.example.controller"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView">
</property>
<property name="prefix" value="/WEB-INF/jsp/">
</property>
<property name="suffix" value=".jsp"></property>

Когда я запускаю этот код, я получаю следующее предупреждение: «ПРЕДУПРЕЖДЕНИЕ: не найдено сопоставление для HTTP-запроса с URI [/SpringDemo/Hello.html] в DispatcherServlet с именем« spring »».Что я не так делаю?

1 Ответ

1 голос
/ 09 февраля 2012

Ваш web.xml говорит, что все запросы с шаблоном URL *.html перенаправляются в Spring.Ваш @RequestMapping фильтрует только по /hello, но URL-адрес запроса, достигающий Spring, равен /hello.html.Чего вам не хватает, так это .html.Ваш @RequestMapping должен быть /hello.html.

После того, как ваш запрос проходит через ваш контроллер, вы пересылаете представление с именем hello, и конфигурация в вашем spring-servlet.xml разрешает это до hello.jsp в WEB-INF/jsp, поэтому убедитесь, что у вас это тоже есть.

Удачного кодирования!

...