Caused by: java.lang.ClassNotFoundException: java.com.bj186.ssm.controller.UserController
在搭建SpringMVC的时候,遇到的这个问题真的很奇葩, 找不到UserController这个类
这明明不就在工程目录下吗?
经过了一番艰苦卓绝的斗争, 才发现原来是包导少了
之前导入的包是:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
而Spring MVC所需要的包有下面这么多
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
而且在Spring的配置文件中, 需要添加对注解的支持,如下
<!-- 开启注解扫描 -->
<context:component-scan base-package="com.bj186.ssm" />
<!-- 开启springMVC注解支持 -->
<mvc:annotation-driven/>
这个时候, UserController中的方法就可以被浏览器去访问了 http://localhost:8080/login
package com.bj186.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
//@RequestMapping("/user") // http://localhost:8080/user user就会找到注解中标注为/user的controller类
public class UserController {
@RequestMapping("/login") // http://localhost:8080/user/login login就去找到对应的/login对应的方法
public String login() {
System.out.println("Hello World!");
return "login";
}
}
最后,问题解决!