Action编写方式

1 action编写的三种方式
(1) 创建普通类,这个不继承任何类,不实现任何接口

public class HelloAction {
   
}

(2) 创建类,实现接口Action

import com.opensymphony.xwork2.Action;

public class UserAction implements Action {
    public String execute() throws Exception {
        return null;
    }
}

(3) 创建类,继承类ActionSupport(最常用)

public class PersonAction extends ActionSupport {
    
}

二 访问action的方法(重点)
1 有三种方式实现
*(1)使用action标签的method属性,在这个属性里面写执行的action的方法

  • 创建action,创建多个方法
package Method;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by pc on 2017/9/21.
 */
public class BookAction extends ActionSupport {
    //添加
    public String add(){
        System.out.println("add........");
        return NONE;
    }
    //修改
    public String update(){
        System.out.println("update.......");
        return  NONE;
    }

}
  • 配置
<?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>
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
   <package name="method" extends="struts-default" namespace="/">
        <action name="addAction" class="Method.BookAction" method="add"></action>
        <action name="updateAction" class="Method.BookAction" method="update"></action>
    </package>
</struts>
执行成功

缺陷:action每个方法都需要配置,如果action里面有多个方法,配置很多的action

*(2)使用通配符方式实现(重点)

在action标签里面name属性,name属性值里面写符号 * 表示匹配任意内容

  • 配置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>
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
    <!--通配符方式实现-->
    <package name="method1" extends="struts-default" namespace="/">
        <!--
        name属性值里面写符号
        (1)执行action里面add方法,访问book_add,使用book_* 可以匹配到,*相当于add
        (2)执行action里面的update方法,访问book_update,使用book_* 可以匹配到,*相当于update
        上面两个路径使用book_* 可以匹配到
        -->
        <action name="book_*" class="Method.BookAction" method="{1}">

        </action>

    </package>
</struts>

(3)动态访问实现(不用)
2 演示错误
(1)如果action方法有返回值,在配置文件中没有配置,出现错误

错误

(2)在action里面的方法有返回值,如果有返回值的时候类型必须是String
(3)action里面的方法可以没有返回值,没有返回值的时候,在result标签不需要配置

  • 把方法写成void
  • 让返回值,返回“none”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,075评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,220评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 每天早晨睁眼第一件事就是打开手机,可是打开手机看什么我也不知道,好像看手机已经是一种习惯了。 因为有孩子所以找工作...
    看向未来阅读 153评论 0 0
  • 生命中总会出现一个人,来了又走,在你心上或多或少地留下些什么。他或许在你眼中很渣,嘴上说着爱你,却与另一个女人纠缠...
    萌哒小曾曾阅读 1,224评论 2 3