似乎dispatcher-servlet无法执行使用的组件扫描。

 <context:component-scan  base-package="abc" />


在我的控制器文件(HelloController.java)中,包abc下。代码编写如下:

@Controller
@RequestMapping("/hello")
public class HelloController {

@RequestMapping(method = RequestMethod.GET)
public String printHello(ModelMap model) {
    model.addAttribute("message", "Hello Spring MVC Framework!");
    return "hello"; //I have already made hello.jsp in web-inf/jsp/
 }
}


我的应用程序名称是SpringMiddle。当尝试使用url作为:

http://localhost:8080/SpringMiddle/hello.htm


我在web.xml中确实有以下网址格式

 <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>


它显示了错误HTTP 404找不到。

编辑::它显示我警告

WARNING:   No mapping found for HTTP request with URI [/SpringMiddle/hello.htm] in DispatcherServlet with name 'dispatcher'

最佳答案

您必须在Spring中启用MVC。在xml config中,您可以通过以下方式进行操作:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <mvc:annotation-driven />

</beans>


并在JavaConfig中:

@Configuration
@EnableWebMvc
public class WebConfig {

}


请参考Spring documentation

10-06 09:21