一、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)测试