- action: 应用程序可以完成的每一个操作. 例如: 显示一个登陆表单; 把产品信息保存起来
- Action类: 普通的 Java 类, 可以有属性和方法, 同时必须遵守下面这些规则:
- 属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生
- 必须有一个不带参的构造器
- 至少有一个供 struts 在执行这个 action 时调用的方法
- 同一个 Action 类可以包含多个 action 方法.
- Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例(线程安全)
测试代码
Action类(Person)
package top.itcourse.action;
/**
*
* @author mac
* 这是一个Action类。
* Action类是什么:
* 1.1.能够处理struts2请求的一个类(最直接的就是会返回一个对应result节点的字符串)。
* 1.2.规范:JavaBean的规范
* 1.2.1.属性规范。
* 1.2.2.get和set方法定义规范(表单提交的时候是看的方法名)。
* 1.2.3.一个空参构造器。
* 1.3.至少有一个供 struts 在执行这个 action 时调用的方法(对应到result节点的字符串返回值)。
* 1.4.同一个 Action 类可以包含多个 action 方法。
* 1.5.Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例(Action不是单例的,线程安全)
*/
public class Person {
private String name;
private int age;
private String gender;
public Person() {
System.out.println("我看看我不存在线程安全问题(打印次数超过1,就安全)。");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
// 被action调用的方法(可以设置多个action方法,去对应result节点)
public String trigger() {
// 看看情况
System.out.println(toString());
return "ok";
}
}
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="default" extends="struts-default">
<!--
1.action是什么:
1.1.一个struts2请求就是一个action。
2.Action类是什么:
2.1.能够处理struts2请求的一个类(最直接的就是会返回一个对应result节点的字符串)。
2.2.规范:JavaBean的规范
2.2.1.属性规范。
2.2.2.get和set方法定义规范(表单提交的时候是看的方法名)。
2.2.3.一个空参构造器。
2.3.至少有一个供 struts 在执行这个 action 时调用的方法(对应到result节点的字符串返回值)。
2.4.同一个 Action 类可以包含多个 action 方法。
2.5.Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例
-->
<action name="access" class="top.itcourse.action.Person" method="trigger">
<result name="ok">result.jsp</result>
</action>
</package>
</struts>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>2017</title>
<!-- 导入jQuery文件 -->
<script src="js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
<!-- script书写位置 -->
<script type="text/javascript">
</script>
</head>
<body>
<!-- 根据action对应的Action类,完成输入数据的自动复制(Person.java) -->
<form action="access.action" method="post">
姓名:<input type="text" name="name"/>
<br />
年龄:<input type="text" name="age"/>
<br />
性别:<input type="text" name="gender"/>
<br />
<input type="submit" value="提交">
</form>
</body>
</html>
运行结果
其它
关注下方公众号回复:004_Action类概述.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top