IDEA建立Spring MVC Hello World 详细入门教
1.新建SpringMVC项目
1.File->Project->Spring
注意事项:
IDEA版本为2020及以上创建项目时无spring选项时
按快捷键组合ctrl+alt+shift+/,然后选register,接着找到javaee.legacy.project.wizard,选中,ok就好了
2.选择项目名称和存放的位置
3点击finish,等待加载(第一次创建会有点慢)
2.设置运行、调试相关配置
项目建好后,并不能直接运行,Run和Debug菜单都是灰色不能点击的。
要需要做一下运行和调试的相关配置
先设置“Server”选项卡
点开“Deployment”选项卡,继续设置,
创建Artifact,最后记得点OK保存
3.导入Spring MVC相关类库
1.File->Project Structure->Artifacts
显示缺乏SpringMVC相关类库的引用
2.让程序部署的时候,把Spring MVC相关类库复制到lib文件夹中
4.启动服务器,访问http://localhost:8080/untitled3_springMVC_war_exploded/index.jsp
4.添加Controller
站点可以打开了,不过我们这个不是MVC,因为没有M、没有V也没有C
我们就从MVC中的C(Controller)开始,继续配置
在新建Controller之前,首先要建一个包,SpringMVC是没法运行在默认包下的。
包名和类名自定义。
类内代码:
package springMVC.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hi")
public class HeContorller {
@RequestMapping("/say")
public String say() {
return "/WEB-INF/jsp/say.jsp";
}
}
修改url-pattern(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>
结合这一段xml,我们可以看到,IDEA默认帮我配置了一个名字叫做dispatcher的Servlet
这个Servlet使用org.springframework.web.servlet.DispatcherServlet这个类来处理
这个Servlet对应的Url是*.form
如果你跟我一样不喜欢每个MVC Url后边都带一个form,可以改成斜杠
<url-pattern>/</url-pattern>
5.配置component-scan(dispatcher-servlet.xml)component-scan就是告诉Servlet去哪里找到相应的Controller
打开 dispatcher-servlet.xml
在已经存在的中间加上
<context:component-scan base-package="springMVC.helloworld"/>
base-package指定的就是存放Controller的包
6.添加视图文件(.jsp)
根据前边我写的代码,创建say.jsp位置应该入下图。
say.jsp代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>hello world</body>
</html>
访问http://localhost:8080/untitled3_springMVC_war_exploded/hi/say
7.通过Model向View传值
通过上面的操作,已经完成了MVC中的(V和C),M还没见影子,让我们继续修改
打开刚才定义的Controller 也就是 HeContorller.java文件
package springMVC.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; // 这里导入了一个Model类
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hi")
public class HeContorller {
@RequestMapping("/say")
public String say(Model model) { // 参数中传入Model
model.addAttribute("name","wormday"); // 指定Model的值
model.addAttribute("url","http://www.cnblogs.com/wormday/p/8435617.html"); // 指定Model的值
return "say";
}
}
然后再打开View,也就是say.jsp文件,修改如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
hello world,${name}
<br/>${url}</body>
</html>
然后重新运行项目,刷新页面
一个最简单的MVC项目完成。