欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

程序员文章站 2022-04-16 09:41:45
学生可以申请 Intellij IDEA 旗舰版免费试用!我终于可以暂时不用折腾社区版啦啦啦啦啦!!! IDEA 旗舰版可以直接创建 Spring MVC 项目,但创建后的项目并不是直接就可以运行,还需要进行一些配置。 一、创建项目 打开 Intellij IDEA,创建项目(Create New  ......

学生可以申请 intellij idea 旗舰版免费试用!我终于可以暂时不用折腾社区版啦啦啦啦啦!!!

idea 旗舰版可以直接创建 spring mvc 项目,但创建后的项目并不是直接就可以运行,还需要进行一些配置。

一、创建项目

打开 intellij idea,创建项目(create new project);

在左边选择 “spring”,然后右边勾选“spring mvc”,下面的“web application”应该会自动勾选,如果没有,则手动勾选上;

下面保持默认选项“download”就可以,点击“next”;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

输入项目名称(project name),比如这里我是“springmvctest”,其他不用管,点击“finish”;

等待 idea 下载完响应的包;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

我们得到一个初始的项目结构:

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

此时我们按快捷键 ctrl+alt+shift+s,打开项目结构(project structure),可以看到有两个 problems,点击“problems”,并在右边点击任意一个蓝色的“[fix]”,在子菜单中选择“add all misssing dependencies of 'xxx' to the artifact”,点击“ok”。

这样,在编译运行的时候,就会在“项目文件夹\out\artifacts\项目名_war_explodedlib\web-inf”中也建立一个 lib 文件夹,并把相关的包给复制过去。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

二、配置 tomcat

点击右上角的“add configuration...”

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

点击右上角的加号,在菜单中选择“tomcat server”,并在子菜单中选择“local”;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

修改“name”,比如这里是“tomcat 9”;

指定 tomcat 目录(application server);

在“after launch”中选择默认打开的浏览器;

可以看到下面有一个“warning”,直接点击右边的“fix”;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

接着自动跳到“deployment”,并自动添加了“xxx:war exploded”;

为了方便,我们将下面的应用上下文改成项目名就好(比如这里的“/springmvctest”),server 选项卡这边的“url”也会自动变成“http://localhost:8080/应用上下文”的形式(比如这里会变成“http://localhost:8080/springmvctest”)。点击“ok”。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

此时,点击右上角的绿色三角形运行项目;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

在启动 tomcat 之后,idea 会自动启动浏览器打开“http://localhost:8080/springmvctest”,显示的就是 web 文件夹下的 index.jsp 了。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

三、配置 view resolver 和 controller

1、导入 jstl 包

下载地址:

下载后复制到项目中的 lib 文件夹中;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

再次打开 project structure,点击“modules”,在中间选中项目,在右边点击加号,选择第一项“1 jars or directories...”;

选择我们刚复制进去的 lib 文件夹中的 jar 包,点击“ok”;

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

 Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

然后 problems 提示又出问题了,点击“problems”,点击右边蓝色的“[fix]”,在子菜单中选择“add 'javax.servlet.jsp.jstl-api-1.2.2.jar' to the artifact”,点击“ok”。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

2、新建 jsp 页面

在 web\web-inf 文件夹中新建一个文件夹,命名为“jsp”,并在其中新建一个 jsp 文件,命名为“test.jsp”,如图:

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

 3、新建控制器类

在 src 文件夹中创建包,包名为“域名倒序+项目名+controller”格式,比如我的域名是“zhouxy.xyz”,这个项目名称为“springmvctest”,所以我这里包名为“xyz.zhouxy.springmvctest.controller”(其实最好应该是“xyz.zhouxy.springmvc.test.controller”)。

在里面创建一个 java 类,我这里类名为“mycontroller”,如图,为类加上 @controller 注释,在类中创建一个方法,用 @requestmapping("/test"),将 “/test” 和该方法绑定。方法返回字符串 "test"。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

 4、修改配置文件

打开 web.xml,将 org.springframework.web.servlet.dispatcherservlet 对应的映射改成 “/”,使之响应所有访问本 web 应用的 url(即响应“http://localhost:8080/springmvctest/”,不论后面加了什么)。如图:

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

这里默认 servlet-name 为“dispatcher”,相应的 servlet 的配置文件名为“dispatcher-servlet.xml”。如果你修改了,那么文件名则应该响应地修改为“xxx-servlet.xml”形式。我这里不作修改。

打开 dispatcher-servlet.xml,修改为如图所示:

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记

注意,其中 <context:component-scan /> 元素的 base-package 属性值是我们的 controller 包的完整包名,如果你的包名和我不一样,注意修改以保持一致。

下面的 view resolver,将在控制器类中的方法返回字符串 "test" 时,自动在其前面和后面分别加上“/web-inf/jsp/”和“.jsp”,使之成为“/web-inf/jsp/test.jsp”。

再次运行项目,浏览器像之前一样打开了“http://localhost:8080/springmvctest/”,我们在其后面输入“test”,dispatcher 会在<context:component-scan /> 元素所指定的包中查找带 @controller 注释的类,并在其中找到带 @requestmapping("/test") 注释的请求处理方法,然后执行。如上所述,我们的方法返回了字符串 "test",由 view resolver “加工”成“/web-inf/pages/test.jsp”,返回给 spring 的org.springframework.web.servlet.dispatcherservlet 对象,也就是 web.xml 中配置的 dispatcher,由它去跳转到“/web-inf/pages/test.jsp”页面。

Intellij IDEA 旗舰版创建 Spring MVC 项目踩坑记