Struts2的Action的配置和访问(大全)

一、Action的编写

1、Action类就是POJO的类

POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

(1)编写action的方式

编写类

/*
 * Action的编写方式:Action类的POJO的类
 */
public class ActionDemo1 {
	public String execute() {
		System.out.println("ActionDemo1执行了。。。。");
		return null;
	}
}

配置文件

<?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>
	<!-- Struts2为了管理Action的配置,通过包进行管理。。 -->
	<!-- 配置Struts2的包=============== -->
	<package name="demo2" extends="struts-default" namespace="/">
		<action name="actionDemo1" class="com.itzheng.struts.demo2.ActionDemo1">
		</action>
	</package>
</struts>

导入配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、Action类实现一个Action的接口

(1)编写action的方式
public class ActionDemo2 implements Action {
	@Override
	public String execute() throws Exception {
		System.out.println("ActionDemo2执行了。。。。");
		return null;
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)实现接口的这种方式:提供了五个常量(五个逻辑视图的名称)

SUCCESS:成功
ERROR:失败
LOGIN:登录出错页面的跳转
INPUT:表单校验的时候出错
NONE:不跳转
在这里插入图片描述

3、Action类继承ActionSupport类

Action的编写方式三:Action类继承ActionSupport类
推荐使用继承ActionSupport方式
在ActionSupport当中提供了数据校验,国际化等一系列操作的方法

public class ActionDemo3 extends ActionSupport {
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("ActionDemo3执行了。。");
		return NONE;
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、Action的访问

1、提供method设置

(1)搭建jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>Action的访问</h1>
	<h3>通过method的方式</h3>
	<a href="${pageContext.request.contextPath }/userFind.action">查询用户</a>
	<br />
	<a href="${pageContext.request.contextPath }/userUpdate.action">修改用户</a>
	<br />
	<a href="${pageContext.request.contextPath }/userDelete.action">删除用户</a>
	<br />
	<a href="${pageContext.request.contextPath }/userSave.action">保存用户</a>
	<br />
</body>
</html>
(2)创建类和方法
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
	public String find() {
		System.out.println("查询用户");
		return NONE;
	}
	public String update() {
		System.out.println("修改用户");
		return NONE;
	}
	public String delete() {
		System.out.println("删除用户");
		return NONE;
	}
	public String save() {
		System.out.println("保存用户");
		return NONE;
	}
}
(3)创建配置文件
<?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>

	<!-- Struts2为了管理Action的配置,通过包进行管理。。 -->
	<!-- 配置Struts2的包=============== -->
	<package name="demo3" extends="struts-default" namespace="/">
		<action name="userFind" class="com.itzheng.struts.demo3.UserAction" method="find"></action>
		<action name="userUpdate" class="com.itzheng.struts.demo3.UserAction" method="update"></action>
		<action name="userDelete" class="com.itzheng.struts.demo3.UserAction" method="delete"></action>
		<action name="userSave" class="com.itzheng.struts.demo3.UserAction" method="save"></action>
	</package>
</struts>
(4)导入配置文件

在这里插入图片描述
执行流程图
在这里插入图片描述

2、提供通配符的方式进行

(1)jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>Action的访问</h1>
	<h3>通过通配符的方式</h3>
	<a href="${pageContext.request.contextPath }/product_find.action">查询商品</a>
	<br />
	<a href="${pageContext.request.contextPath }/product_update.action">修改商品</a>
	<br />
	<a href="${pageContext.request.contextPath }/product_delete.action">删除商品</a>
	<br />
	<a href="${pageContext.request.contextPath }/product_save.action">保存商品</a>
	<br />
</body>
</html>
(2)创建Action对象
package com.itzheng.struts.demo3;
import com.opensymphony.xwork2.ActionSupport;
public class ProductAction extends ActionSupport {
	public String find() {
		System.out.println("查询商品");
		return NONE;
	}
	public String update() {
		System.out.println("修改商品");
		return NONE;
	}
	public String delete() {
		System.out.println("删除商品");
		return NONE;
	}
	public String save() {
		System.out.println("保存商品");
		return NONE;
	}

}
(3)配置对应的文件

在这里插入图片描述
测试代码
在这里插入图片描述
在这里插入图片描述

(4)原理图

在这里插入图片描述
通配符更抽象的写法
< action name=_ class=“路径包名.{1}” method="{2}">< action >

在这里插入图片描述

3、动态方法访问

(1)jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>Action的访问</h1>
	<h3>动态方法访问的方式</h3> 
	<a href="${pageContext.request.contextPath }/customer!find.action">查询客户</a>
	<br />
	<a href="${pageContext.request.contextPath }/customer!update.action">修改客户</a>
	<br />
	<a href="${pageContext.request.contextPath }/customer!delete.action">删除客户</a>
	<br />
	<a href="${pageContext.request.contextPath }/customer!save.action">保存客户</a>
	<br />
</body>
</html>
(2)配置文件

在这里插入图片描述

(3)创建CustomerAction类
package com.itzheng.struts.demo3;
import com.opensymphony.xwork2.ActionSupport;
public class CustomerAction extends ActionSupport{
	public String find() {
		System.out.println("查询客户");
		return NONE;
	}
	public String update() {
		System.out.println("修改客户");
		return NONE;
	}
	public String delete() {
		System.out.println("删除客户");
		return NONE;
	}
	public String save() {
		System.out.println("保存客户");
		return NONE;
	}
}

(4)测试
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/106583250
今日推荐