struts2+maven+idea实现 超详解
一、起源
1、挺多公司老项目会使用到ssh整合框架使用,所以逐个去学习,学习struts2的时候
发现网上的教程多是eclipse的普通Java项目,没有目前比较火的idea,以及比较少maven的教程
总得来说,就是符合我目前使用结构风格的教程没有,多是一些老古董般的教程
二、学习
1、新建一个maven项目,按照正常操作,创建一个我们熟悉的maven项目
2、现在所得的maven项目是一个控制台项目,把普通的maven控制台项目变成一个web版的maven项目
2.1、然后将会得到一下的目录结构,跟网上老的struts的教程会有点不一样,这一点也是很重要的,不一样导致学习的时候就会比较难以下手
特别谨记,不能从下面加web,不然创建的web会无效
3、添加架构所需依赖
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.26</version> </dependency> <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>2.5.10.1</version> </dependency> <!--config-browser-plugin插件,使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射--> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-config-browser-plugin</artifactId> <version>2.5.10.1</version> </dependency> </dependencies>
最重要的一点来了,变成web项目需要在pom.xml 上配置没
有这个,是不可能会成功的,会一直404,找不到你的web
<build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.0</version> <configuration> <warSourceDirectory>web</warSourceDirectory> </configuration> </plugin> </plugins> </build>
还要谨记一点的就是设置生成war包
<packaging>war</packaging>
4、接下来就是web.xml里面的配置(这里和ssm不一样的就是这里的不需要配置框架xml的位置,通过过滤器,框架会自动处理struts2.xml的xml)
<--一系列连接默认跳转地址,如果没有,则会持续寻找以下地址--> <display-name>StrutsDemo02</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <--过滤器配置--> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5、配置struts.xml
<--包 namespace设置包用斜杠替换,不然访问连接的时候就要直接加上包的name--> <package name="helloaction" extends="struts-default" namespace="/"> <action name="hello" class="com.gz.controller.HelloAction"> <result name="ok">/hello.jsp</result> </action> </package>
6、测试代码类 上面配置的 com.gz.controller.HelloAction,就新建一个HelloAction类,在路径包里面(返回的OK对应上面配置的result的name,会跳转配置的jsp)
jsp页面可以根据下面截图的结构,写一个返回的jsp和一个主页jsp其中主页jsp可以随意写web.xml配置了的名称
7、最后测试,手动生成war包,运行,记得要用手动生成的,他会自动生成一个war包是没有用的,在这踩坑挺久
一个手动一个自动生成的
然后正常Tomcat选择war包,就完成了一个struts2入门的学习,后续进阶,就根据这个思路去学习就可以了
成功的把一些,老古董类的东西,转成了现在比较流行的写法
这就是在pom.xml 里面没有build的结果,无论怎么写,都找不到你的web
正确结果
主页index.jsp
访问hello类的返回hello.jsp
一系列配置不知道什么意思的可以自行搜索,网上新写法
没有,但是配置解析还是有很多的,那些解析比我的理解要透彻
毕竟,我现在只是一个刚上车struts2框架的小白