1.IDE新建项目,导包
- struts2-core-2.5.10.1.jar
- ngnl-3.1.12.jar
- javassist-3.20.0-GA.jar
- commons-io-2.4.jar
- commons-fileupload-1.3.2.jar
- commons-lang3-3.4.jar
- log4j-api-2.7.jar
以上应该是最基本的几个包了
2. web.xml文件
//就是这个层级
<web-app>
<!-- 固定写法 -->
<filter>
<filter-name>struts2</filter-name>
<!-- 这个类可能会根据版本的不同有所不同 -->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3. Action类
public class HelloWorldAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("执行action");
//return的值是有用的,下文讲
return "123";
}
}
4. struts.xml文件
在src
根目录新建一个文件struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
//xml文件的命名约束
<struts>//必须
//package标签是用来管理映射的url的,和SpringMVC中类级别的@RequestMapping注解类似
//namespace就是映射的主要url,类似于SpringMVC中类级别的@RequestMapping注解指定的值
//名字随便起
<package name="default" namespace="/" extends="struts-default">
//action标签和SpringMVC中标识了@RequestMapping的方法类似
//name即等同于@RequestMapping中的url
//最终如果客户端访问到这个url,会调转到class中所指的类中,执行execute()方法
<action name="helloworld" class="com.zyj.struts.HelloWorldAction">
//如果execute()方法执行的返回结果是"123"就跳转到result标签中的MyJsp.jsp文件
<result name="123" >/WEB-INF/MyJsp.jsp</result>
//如果execute()方法执行的返回结果是一个常量SUCCESS,则会匹配到这个没有指定name的result中
<result >/index.jsp</result>
</action>
</package>
</struts>
此例中,当输入Url为:http://localhost:8080/项目名称/hellowworld
之后会自动跳转到这个action
中执行,
如果输入http://localhost:8080/项目名称/hellowworld.action
也是可以的
5.创建JSP文件
略