spring - org.springframework.web.servlet.DispatcherServlet noHandlerFound(未找到映射)

标签 spring jsp spring-mvc

我的jsps位于WEB-INF/jsp/下,以下是我的web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Checkout</display-name>

  <servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>


</web-app>

这是我尝试访问的页面product.jsp 的映射:

@Controller
@RequestMapping("/product.action")
public class ProductController {

    /**
     * Show the product selection form
     * 
     * @return
     */
    @RequestMapping(method=RequestMethod.GET)
    public String get() {
        return "products.jsp";
    }

}

当尝试从以下链接访问该页面时:

http://localhost:8080/myapp/product.action

我在浏览器中收到404,并且在控制台中收到以下警告:

Jun 28, 2012 10:55:23 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/myapp/product.action] in DispatcherServlet with name 'myservlet'

我在配置中遗漏了什么吗? 请指教,谢谢。

编辑:我尝试将 viewResolver bean 添加到 applicationContext 但没有成功:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <context:component-scan base-package="com.myapp"/>



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


</beans>

最佳答案

遵循苏尼尔提到的规则。我在您的 spring 配置 xml 中发现一个问题,您没有

<mvc:annotation-driven />  

您需要这个来注册 Controller连同

<context:component-scan base-package="com.myapp"/>

关于spring - org.springframework.web.servlet.DispatcherServlet noHandlerFound(未找到映射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241292/

相关文章:

java - 方法中的@ModelAttribute

java - 当我从 @RestControler 返回对象时,如何在 json 中保留 map 键顺序

java - 数据源在 WebLogic 12.2 上无故丢失

java - 如何统计无状态服务中的递归次数?

java - JSP 中的 session.getAttribute() 给出空值

jsp - 是否可以将动态路径作为 jsp include 的一部分

java - src/main/resources 下的文件位于 target/WEB-INF/classes 下

java - 使用 Spring AMQP 使用后自动从队列中删除消息

java - Spring 中对 List 或 Map 的响应主体

java - 如何修改displaytag中某列的空值?