在DispatcherServlet中找不到带有URI [/ TestServlet /]的HTTP请求的映射,其名称为' offer'

时间:2016-08-18 07:43:38

标签: spring servlets view controller dispatcher

我已经看过很多次这个问题了,我也看到了很多不同的答案。不幸的是,似乎没有什么对我有用。请帮忙。

我收到错误 2016年8月18日下午1:03:09 org.springframework.web.servlet.PageNotFound noHandlerFound 在DispatcherServlet中找不到带有URI [/ TestServlet /]的HTTP请求的映射,其名称为'提供'

我在3次左右尝试了同样的事情。 请告诉我如何继续。

我的 web.xml 文件如下所示

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>TestServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>offers</display-name>
    <servlet-name>offers</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>offers</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

我的 offers-servlet.xm l如下

<?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"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        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-4.2.xsd">


    <mvc:annotation-driven></mvc:annotation-driven>
    <context:component-scan
        base-package="com.sharat.spring.web.controllers">
    </context:component-scan>
    <bean id="jspViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsps/"></property>
    <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

这是我的 home.jsp 文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My JSP</title>
</head>
<body>
Hi There
</body>
</html>

这是我的OffersController源文件

package com.sharat.spring.web.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class OffersController {
        @RequestMapping("/")
        public String showHome(){
            return "home";
        }
}

请帮助我了解我可能出错的地方。我检查了控制器所在的包名,似乎是正确的。 我还添加了上下文组件扫描。

谢谢。

2 个答案:

答案 0 :(得分:0)

更改servlet调度程序映射以服务所有传入请求:

<servlet-mapping>
    <servlet-name>offers</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

并且为了访问“/ offers”URI,您需要编辑控制器类:

@Controller
public class OffersController {
        @RequestMapping("/offers")
        public String showHome(){
            return "home";
        }
}

答案 1 :(得分:0)

我仍然不知道问题是什么。 我通过安装全新版本的Eclipse和新工作区然后使用我最初发布的相同代码来实现它。 很奇怪!