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>
最重要的就是这两个配置,还有其他步骤的设置