警告:在DispatcherServlet中找不到带有URI [/ SpringMVCHelloWorld /]的HTTP请求的映射,其名称为' spring-dispatcher'

时间:2016-08-07 08:25:24

标签: spring spring-mvc

我正在创建一个样本Spring MVC Web应用程序来打印问候语     信息。当我运行项目时,它显示HTTP状态404错误。     我使用的是Eclipse IDE,并且我添加了Spring Framework的所有JAR     4.2.6(因为我混淆了哪个JARS完全配置)以及公共 -     logging-1.1.1 JAR。我的项目代码如下

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns="http://xmlns.jcp.org/xml/ns/javaee"  
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>SpringMVCHelloWorld</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
  <servlet-name>spring-dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-  
  class>
  </servlet>
  <servlet-mapping>
  <servlet-name>spring-dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

spring-dispatcher-servlet.xml的代码

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



<bean id="HandlerMapping"  
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
</bean>
<bean name="/index.jsp" class="beans.HelloController">

</bean>

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

</bean>
</beans>

HelloController.java的代码

package beans;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;


public class HelloController implements Controller {


@Override
public ModelAndView handleRequest(HttpServletRequest req, 
HttpServletResponse res) throws Exception {

    ModelAndView mav=new ModelAndView("HelloPage");
    mav.addObject("msg","Hi This is the First Spring MVC Application");

    return mav;
}

}

HelloPage.jsp的代码

${msg}

错误日志

WARNING: No mapping found for HTTP request with URI [/SpringMVCHelloWorld/] 
in DispatcherServlet with name 'spring-dispatcher'

1 个答案:

答案 0 :(得分:0)

根据我对spring的体验,您可以在课程顶部添加@Controller@RestController注释,而不是实现控制器,然后{j} @RequestMapping添加到您想要的网址。因此你可以:

@RestController
@RequestMapping("/")
public class HelloController {

  @RequestMapping(value = "SpringMVCHelloWorld", method = RequestMethod.GET)
  public ModelAndView helloWorldRequest(){
     ModelAndView mav = new ModelAndView("HelloPage");
     mav.addObject("msg","Hi This is the First Spring MVC Application");
     return mav;
  }
}

您可以使用不同的方法和@RequestMapping注释映射到其他网址。

希望这能解决你的问题。