org.springframework.web.servlet.DispatcherServlet

2019-09-18 15:57发布

我的JSP是在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'

我失去了在配置上的东西吗? 请指教,谢谢。

编辑 :我尝试添加视图解析器的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>

Answer 1:

按照什么苏尼尔一直所提到的规则。 我看到你的春天配置XML一个问题,你没有

<mvc:annotation-driven />  

您需要使用该注册Controller一起

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



Answer 2:

当您指定RequestMapping,URI不应该有扩展名。 调度servlet将在请求URI而寻找URI的映射忽略它。

使用@RequestMapping("/product")它应该工作。

当您使用视图解析器只返回JSP文件的名称第二件事情。 不要添加.jsp扩展,InternalViewResolver会为你做它。



Answer 3:

问题是,没有检测到该控制器。 我从改变基本包com.myappcom.myapp.controller ,现在工作得很好。



Answer 4:

使用此类=“org.springframework.web.servlet.view.UrlBasedViewResolver”,而不是类=“org.springframework.web.servlet.view.InternalResourceViewResolver”

在你的应用程序上下文的bean。



Answer 5:

如果您在上下文中的XML使用ViewResolver的,你应该改变get方法返回众所周知声明为“产品”,并确保该文件夹层次是正确的



文章来源: org.springframework.web.servlet.DispatcherServlet noHandlerFound (No mapping found)