spring - 在具有名称的 DispatcherServlet 中找不到具有 URI.... 的 HTTP 请求的映射

标签 spring spring-mvc

我已经查看了几乎所有关于 stackoverflow 的相关文章,但我无法解决我的问题。

代码如下: web.xml:

   <display-name>Spring3MVC</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>contextConfigLocation</param-name> 
        <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 
    <listener> 
        <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> 
    </listener>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
        <url-pattern>/</url-pattern>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
</web-app>

spring-servlet.xml:

<context:component-scan base-package="com.mycompany.elso" />
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>   

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

我的 Controller :

public class myController {
    @RequestMapping("/hello")
    public ModelAndView helloWorld() {

        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello", "message", message); 
    }
}

网页/index.jsp:

<html>
<head>
    <title>Spring 3.0 MVC Series</title>
</head>
<body>
    <a href="hello.html">Say Hello</a>
</body>
</html>

网页/WEB-INF/jsp/hello.jsp:

<html>
<head>
    <title>Spring 3.0 MVC Series: Hello World - ViralPatel.net</title>
</head>
<body>
    ${message}
</body>
</html>

因此,当我启动应用程序时,index.jsp 已正确加载,但是当我单击 href 导航到 hello.jsp 时出现 404 错误,并且服务器日志显示:

No mapping found for HTTP request with URI [/Elso/hello.html] in DispatcherServlet with name 'spring'

我已经查了几十篇这样的文章,但我就是找不到错误,有人知道它可能是什么吗?

最佳答案

添加

  <mvc:default-servlet-handler/>

到 spring-servlet.xml

关于spring - 在具有名称的 DispatcherServlet 中找不到具有 URI.... 的 HTTP 请求的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683847/

相关文章:

java - Spring 启动 Thymeleaf : How to include html file

java - 如何 Autowiring 具有多个实现的接口(interface)

java - Spring 安全单点登录

java - 没有关系实体的 JPA 存储库选择

java - Java-Spring-Hibernate 中的日期格式发生变化

java - 尽管有 @ResponseStatus 注释,ResponseEntityExceptionHandler 不会向客户端发送错误代码

java - Eclipse 中 Spring MVC 模型对象的代码辅助 (jsp/jSTL) View

java - Spring(实例化Google Lib电话号码)使用Filter改变一个Model实例变量

java - 项目正在运行并工作,但 pom.xml 显示错误

spring - 将 Spring Data Rest 存储库注入(inject)实用程序类