在IDEA中创建SpringMVC项目
1 . File -> New Project -> Spring -> SpringMVC
2 . 等待下载或引用本地的 lib
创建完成项目(下载所有的jar文件)
3 . 项目创建完成后选择工具栏的 Run/Debug Configuration
,添加一个服务器
4 . 添加服务器后会提示 No artifacts marked for deployment
,点击右下角的fix将该项目添加到Tomcat
服务器中,并配置项目路径为 springmvc
5 . 启动服务器,此时会发布失败,提示异常 java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
这是因为XXX-servlet.xml
里面没有进行配置导致的异常
6 . 在dispatcher-servlet.xml
中添加如下配置:
<!-- 默认使用基于注释的适配器和映射器 -->
<mvc:annotation-driven/>
<!-- 只把动态信息当做controller处理,忽略静态信息 -->
<mvc:default-servlet-handler/>
<!-- 自动扫描包中的Controlller -->
<context:component-scan base-package="controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/><!-- 前缀 -->
<property name="suffix" value=".jsp"/><!-- 后缀,自动拼接 -->
</bean>
7 . 创建Controller
类,对Controller
添加注解
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello.action")
public String hello(ModelMap mv) {
mv.addAttribute("msg", "hello mvc");
return "hello";
}
}
8 . 在/WEB-INF
下创建jsp
目录并在jsp
中创建hello.jsp
(该目录为结果跳转路径,在dispatcher-servlet.xml
中进行了配置)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
</body>
</html>
9 . 因为在Controller
中为.action
,所以将web.xml
中也修改为拦截.aciton
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
10 . 点击工具栏的项目管理,在Problem
中点击fix
,添加所需的jar
文件到工程中
11 . 此时再次重新发布项目,启动后可以访问jsp
页面,但是访问action
时会提示新的错误 Handler processing failed; nested exception is java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config
这是因为 IDEA 所下载的包中没有包含jstl.jar
和standard.jar
导致的(如果使用前面链接所给的jar
不会出现该问题),下载并到导入这两个jar到项目中即可解决( CSDN 下载|官方下载)
12 . 引入jar
包后再次重启 Tomcat 服务器,就可以访问action
了,一个最基本的 SpringMVC 项目就搭建完成了