后来发现了一种更加方便的创建方式,即第一步不选择Create from archetype,创建完毕后打开Project Structure-Modules,然后选中对应module添加Web(往下拉一点),但是注意添加的Web里面的参数要修改一下,需要改的参数是Deployment Descriptors下的Path值,注意改的时候直接填写新值而不是打开弹框找web.xml,使得默认的web变成webapp,且此webapp位于src/main/文件夹中,而web.xml则在webapp下的WEB-INF目录下,填写好后再改另一个参数是Web Resource Directory,让它的值是webapp路径,注意直接写而不是通过文件浏览框定位,保存后自动生成webapp路径和web.xml文件;这么做可以省掉很多步骤,比如创建java文件夹及设置Sources,和改web.xml的2.3为3.1等等,不过仍然要将默认的1.5的JDK变成自己的版本(可以通过配置settings.xml),这种方式要自己手动添加Artifacts,添加Web Application:Exploded就行,以及添加Module的Dependencies里的Tomcat依赖,不过要将out目录改为target目录,后面再接一个项目名称作为目录即可;target目录中的内容在压缩项目时都可以删除)
(后续:可以在Default settings里设置Java Compiler和Maven的Runner的jre版本)
工具是IntelliJ IDEA 2017.2月的版本
第一步:Create New Project,在左侧找到Maven选项,然后步骤如图(这个webapp生成的项目结构个人觉得不怎么好,比如没有main/java文件夹,也没有test/java文件夹,且各个文件夹也没有设置为Sources、Resources之类的,而且web.xml居然是2.3版本的;不知道大家有没有其它推荐):
next后新窗口中填写GroupId和ArtifactId,GroupId一般是指集团/团队名称,如com.alibaba,如果是个人可以填一个自己的英文名,一般都是小写英文。
ArtifactId一般就是这个项目的名称。然后一直next然后finish。(这中间其实还可以设置一些其它参数,比如不用idea默认的maven,这里先写个最简单的)
过个几秒后Idea创建出的项目的结构如图(根据maven的archetype创建的):
这里先将IDEA创建这种archetype的Maven的项目中比较坑的地方先改掉(以后或许升级后会没有这些坑):
①点击上面的File-Project Structure,然后点击Modules,然后点击中间部位的项目名称,然后找到右侧的Language level将它的值改成8(或自己JDK的版本,这里原本默认是5),点击OK保存,过程如图:
然后在IDEA上点击File-Settings,搜索Java Compiler,将两个值改为1.8,如图:
OK后第一个坑就改好了(个人觉得1.5实在太低了,而且JRE也是向下兼容的,至少默认得1.6吧)
②将生成的web.xml改一下,原本是2.3版本的:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
可以改成(注意2.3版本的是不支持JSP中的el表达式的,即${msg}将不能被tomcat解析):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Archetype Created Web Application</display-name>
</web-app>
第二个坑也搞定了。
接下来开始继续完善Maven项目结构和相关配置
第一步先将pom.xml里改成自己需要的jar包的dependency,改好之后注意要对着pom.xml右键-Maven-Reimport(会将maven的默认配置及pom.xml里设置的配置转换导入为此项目的配置,比如jar包、JDK依赖等等)
第二步(重要),打开项目的Project Structure-Modules-Sources,如图:
(这里之前漏掉了一步,在上图中的中间处的IdeaMavenTest上面点击那个绿色的+号,然后选择Web这一栏,然后Apply;如果不这么做将无法在项目结构的webapp内右键找到New - JSP选项)
注意此时src中没有test/java文件夹(用于测试用,建议创建),且main下没有java文件夹,首先对src右键New Folder名为test,然后对新建的test文件夹右键New Folder名为java,然后对这个java文件夹右键选择为Tests。
然后对main右键New Folder名为java,对这个java文件夹右键选择为Sources,然后对main下的resources右键选择为Resources后点击OK保存。
接着在WEB-INF目录下New一个Folder名为view,此时项目结构为:
接下来就是在main中的java文件夹下创建controller、service之类的包,在view中创建jsp文件,在resources文件中创建springmvc.xml文件(注意此时的java和resources内的文件/文件夹是平级的,它们都将输出到classes文件夹(classpath)中)
剩余的步骤我就不多说了,这个是给有创建过Eclipse的动态Web项目和Maven项目的人看的,如果你没有创建过,建议先创建几个Eclipse的相应项目(eclipse目前仍然是必须要了解的)
具体的可以参考我的:http://www.cnblogs.com/silentdoer/p/7134332.html
和我整合的:http://www.cnblogs.com/silentdoer/articles/7133685.html
后续还要配置tomcat,可以参考:
http://www.cnblogs.com/yangyquin/p/5285272.html