【问题标题】:No mapping found for HTTP request with URI?没有找到带有 URI 的 HTTP 请求的映射?
【发布时间】:2012-02-08 11:03:36
【问题描述】:

您好,我有以下代码: 控制器:

@控制器

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>

当我运行此代码时,我收到以下警告 “警告:在名为“spring”的 DispatcherServlet 中找不到具有 URI [/SpringDemo/Hello.html] 的 HTTP 请求的映射”。我做错了什么?

【问题讨论】:

  • 最后我自己修好了。日食和导航的一些问题!

标签: spring-mvc web.xml dispatcher


【解决方案1】:

您的 web.xml 表示所有带有 url 模式 *.html 的请求都被转发到 Spring。您的@RequestMapping 仅过滤/hello,但到达Spring 的请求URL 是/hello.html。您缺少的是.html。你的@RequestMapping 应该是/hello.html

在您的请求通过您的控制器后,您将转发到名为 hello 的视图,并且您的 spring-servlet.xml 中的配置将此解析为 WEB-INF/jsp 中的 hello.jsp,因此请确保您也拥有该视图。

编码愉快!

【讨论】:

  • 哎呀我刚才看到了你的回答。非常感谢。
  • 但我也做了同样的事情,但没有成功 :( 以前我的代码在另一个添加 .html 的应用程序中运行良好,但在此它仍然无法正常工作:( - 有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2016-04-18
  • 2015-04-03
  • 1970-01-01
  • 2016-02-05
相关资源
最近更新 更多