Struts2_004_Action类概述

来源:互联网 发布:java做的小游戏 编辑:程序博客网 时间:2024/06/05 00:58
  • 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>

运行结果

微信公众号:JavaWeb架构师


其它



- 源码下载:

关注下方公众号回复:004_Action类概述.code
  • 欢迎加入交流群:451826376

  • 更多信息:www.itcourse.top

完整教程PDF版本下载

原创粉丝点击