1.项目结构
我使用的工具是Interiij idea,但是项目结构和Eclipse相似,可以参考创建项目。
这里只是添加了几个主要的jar包,实现简单的功能已经足够了。
2.web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- 默认初始化页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Struts2过滤器 -->
<filter>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 过滤器类 2.1版本以上-->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!--2.1版本以下
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
-->
</filter>
<!-- Struts2过滤器映射 -->
<filter-mapping>
<!-- 过滤器名称,与上面的一致,必须相同 -->
<filter-name>struts2</filter-name>
<!-- 过滤器拦截的请求 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3.struts.xml配置
<?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 name="com.action" extends="struts-default" namespace="/">
<!-- 定义action,没有method属性,则调用的是execute() -->
<action name="helloAction" class="com.action.HelloAction">
<!-- 定义处理成功后的映射页面 -->
<result name="success">/WEB-INF/jsp/success.jsp</result>
<!-- 定义处理失败后的映射页面 -->
<result name="error">/WEB-INF/jsp/error.jsp</result>
</action>
<!-- 定义action,method属性为add,则调用的是add() -->
<action name="add" class="com.action.HelloAction" method="add">
<!-- 定义处理成功后的映射页面 -->
<result name="success">/WEB-INF/jsp/addSuccess.jsp</result>
<!-- 定义处理失败后的映射页面 -->
<result name="error">/WEB-INF/jsp/error.jsp</result>
</action>
<!-- action name 为delete*,指的是请求以delete开头的都使用这个action,*为通配符,
method属性为{1},1代表的是第几个*,如果name为deleteAll,则调用的是方法All() ,
success返回的就是All.jsp-->
<action name="delete*" class="com.action.HelloAction" method="{1}">
<!-- 定义处理成功后的映射页面 -->
<result name="success">/WEB-INF/jsp/{1}.jsp</result>
<!-- 定义处理失败后的映射页面 -->
<result name="error">/WEB-INF/jsp/error.jsp</result>
</action>
</package>
</struts>
4.HelloAction.java
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
//重写ActionSupport 的execute()方法
@Override
public String execute() throws Exception {
return SUCCESS;
}
public String add() throws Exception {
return SUCCESS;
}
public String Edit() throws Exception {
return SUCCESS;
}
}
5.index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<a href="helloAction.action">请求Struts2</a>
<a href="add.action">添加</a>
<a href="deleteEdit.action">删除编辑</a>
</body>
</html>
6.success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Success</title>
</head>
<body>
第一个Struts2程序!<br>
</body>
</html>
7.error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Error</title>
</head>
<body>
请求失败!<br>
</body>
</html>
8.addSuccess.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>addSuccess</title>
</head>
<body>
<a>Add Successful!</a>
</body>
</html>
9.Edit.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Delete Edit</title>
</head>
<body>
<a>Delete Edit Successful!</a>
</body>
</html>
10.运行结果
11.请求Struts2
12.添加
13.删除编辑
14.总结
这只是一个简单的教程,希望能够帮到大家,代码里有一些命名不规范,大家见谅,如果有什么问题,请大家在下面留言,与君共勉。