第一步:创建一个WEB工程,引入相关jar包,struts2-blank.war是一个struts2的空工程,将其解压后,将其lib下的所有jar包拷入工程。
第二步:创建页面
在WebContent下创建两个jsp页面,分别为demo1.jsp和demo2.jsp。在demo1.jsp中编写一个访问Action的路径。
demo1.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Struts2的入门案例</title>
</head>
<body>
<h1>Struts2的入门案例</h1>
<!-- 访问struts2的Action -->
<a href="${pageContext.request.contextPath }/strutsDemo1.action">访问struts2的Action</a>
</body>
</html>
demo2.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Struts2跳转页面</title>
</head>
<body>
<h1>Struts2跳转页面成功</h1>
</body>
</html>
点击demo1.jsp中的a标签里面的链接,需要将请求提交到服务器中的Action,所以接下来要编写Action类。
第三步:编写一个Action类
package com.zju.action;
public class StrutsDemo1 {
//创建一个默认的execute方法
public String execute(){
System.out.println("StrutsDemo1中的execute方法开始执行了");
//"success"与struts.xml中配置的结果视图result里的name属性名一致
return "success";
}
}
Action类编写完成后,需要考虑一个问题,Struts2框架是如何识别Action类的呢?所有我们需要对Action类进行配置。
第四步:编写struts2的配置文件:struts.xml
在src下创建struts.xml。Struts2框架的核心配置文件就是struts.xml文件,该文件主要用来配置Action和请求之间的对应关系。Action映射就是将一个请求的URL映射到一个Action类,当一个请求匹配某个Action名称时,框架就使用这个映射来确定如何处理请求。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 配置一个包:package -->
<package name="demo1" extends="struts-default" namespace="/">
<!-- 配置Action -->
<action name="strutsDemo1" class="com.zju.action.StrutsDemo1">
<!-- 配置result结果页面跳转 -->
<result name="success">/demo2.jsp</result>
</action>
</package>
</struts>
第五步:配置web.xml
Struts2框架要想执行,所有的请求都要都需要经过这个前端控制器(核心过滤器),所以要配置这个核心过滤器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>struts2_0</display-name>
<!-- 配置Struts2核心过滤器:前端控制器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
第六步:部署项目
在Tomcat里发布项目,在浏览器里输入URL访问测试是否成功。
通过测试,入门案例成功!
总结一下Struts2的执行流程:
从客户端发送请求过来,先经过前端控制器/核心过滤器(StrutsPrepareAndExecuteFilter),拦截器执行完成以后,就会执行目标Action,在Action中返回一个结果视图,根据Struts.xml中的Result配置的页面进行页面的跳转。