struts2不是struts1的下一代产品,是在struts1和WebWork技术的基础上进行合并后的全新框架,虽然两个名字相似,但是设计思想却有很大的不同。
使用本地的l ib 或者download都可以,这里我使用本地的包,后期比较方便,需要什么包可以直接在本地找到,并拷贝,不需要再去网络上下载
工程命名以及存放位置
新建好工程之后,自行在 WEB-INF 下面新建 classes 和 lib 两个文件夹,改变对应的目录,这里说一下自己踩的坑,
自己使用的版本比较高,2.5.20;
在配置 web.xml 的时候,注意 idea 自动配置的是 2.5 一下的版本,里面的文件出现了变化,所以 filter-class 需要改变去掉 .ng 即可
开始的时候无论怎么操作都出现404,后来发现少了一下 lib 包,
后来找了一下,发现 2.5.20 版本把这个文件整合到 struts2-core-2.5.20.jar 里面了,那么在调用的时候在 struts.xml 中加上了
1 <constant name="struts.enable.DynamicMethodInvocation" value="true"/> 2 <constant name="struts.devMode" value="true"/>
然后重新运行即可
工程目录:
web.xml 配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 5 version="4.0"> 6 <filter> 7 <filter-name>struts2</filter-name> 8 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 9 </filter> 10 <filter-mapping> 11 <filter-name>struts2</filter-name> 12 <url-pattern>/*</url-pattern> 13 </filter-mapping> 14 </web-app>
struts.xml 配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 6 <struts> 7 <constant name="struts.enable.DynamicMethodInvocation" value="true"/> 8 <constant name="struts.devMode" value="true"/> 9 <package name="hello" namespace="/" extends="struts-default"> 10 <action name="helloWorld" class="com.hello.action.HelloWorldAction"> 11 <result name="success">/success.jsp</result> 12 </action> 13 </package> 14 </struts>
最重要的就是这两个配置,还有其他步骤的设置