手把手教你 IDEA Maven 搭建 SpringMVC HelloWorld
刚开始学习java框架,学习IDEA时,感觉举步维艰,慢慢的走到这一步,已经对IDEA 的使用初步掌握了,本篇也没有出现到新的知识点,主要是对 IDEA的熟悉。
1. 新建 Maven WebApp 项目
2. 引入Spring-MVC Jar 包
此处,我们可以直接选中项目 -> 右击 -> Add Framework -> spring 导入 jar, 但是因为 我们用的是maven项目,所以我们可以直接在 porm.xml 文件中配置, 自动下载并可以自动处理依赖。
百度 Spring-mvc maven 这真的是特别好用的方式, 当我们报 找不到 jar 包异常的时候(classNofountException),这种方式可以快速帮我们定位我们所需要的包。
找到依赖后,我们在porm.xml 中,增加我们刚才百度查到的 jar包配置。配置如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.3.RELEASE</version>
</dependency>
3. 增加spring mvc 配置
我们可以在 web-inf 目录下,新建配置文件,而后在 web.xml 中配置,此处我们直接让 IDEA帮我们新建。
右击项目 导入框架支持。
导入项目支持后,项目结构如下:
这时,web.xml 中已经自动增加了如下配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<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>/</url-pattern>
</servlet-mapping>
</context-param>
这样配置 原理 就是servlet 一样,监听路径,而后使用对应的类处理
自己手动配置的同学,注意 servlet-name 的节点内容 和 配置文件必须对应: 比如我此处配置servlet-name节点为 dispatcher,那对应的配置文件则为dispatcher-servlet.xml。
4. 新建Controller
新建 HelloController和 页面( /web-inf/pages ),
HelloController
package com.fang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* Created by yushuai_w on 2018/1/24.
*/
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello() {
ModelAndView modelAndView = new ModelAndView("hello");
modelAndView.addObject("message","hello world");
return modelAndView;
}
}
JSP:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
由于我们在 controller 里直接使用了 hello.jsp,所以我们需要在 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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="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.xsd">
<context:component-scan base-package="com.fang.controller"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>