Struts2中Action的细则

Action的编写方式

在struts2的应用开发中,Action作为框架的核心类,实现对用户请求的处理,Action被称为业务逻辑控制器。一个Action代表一次请求或调用,每个请求都会对应Action类中的一个方法,然后由这个方法进行业务处理。也就是说Action用来处理一次用户的请求对象。

  1. 编写一个普通的java类。
    在类中编写一个公共的,带有String返回值的,没有参数的方法
    这里写图片描述
  2. java类实现Action接口

为了让用户开发的Action更加规范,struts2提供了一个接口,用户实现这个接口的同时,需要重写该方法。并且这个接口中只定义了这一个方法,返回值为一个字符串,在该接口中定义了5个常量,用作execute的返回值
这里写图片描述

package com.zillion.action;

import com.opensymphony.xwork2.Action;

public class ActionDemo implements Action{

    @Override
    public String execute() throws Exception {

        System.out.println("Action执行了");
        return SUCCESS;
    }

}
  1. java类继承ActionSupport(推荐)
    ActionSupport类本身就实现了Action接口,是Struts2中Action接口的默认实现类,所以继承ActionSupport就等于实现了Action接口。ActionSupport类还实现了Validateable、ValidationAware、TextProvider、Serializable等接口,提供了更多的方法。
package com.zillion.action;

import com.opensymphony.xwork2.ActionSupport;

public class ActionDemo2 extends ActionSupport{

    @Override
    public String execute() throws Exception {
        System.out.println("Action执行了");
        return SUCCESS;
    }
}
Action的通用访问方式实现

一个Action类中有许多方法,如果针对每个方法都配置一个对象的action,会使配置文件相当的冗长,如果将访问路径弄成指定格式的,就可以使用通配符 * 来实现公共action配置

  • 在Action类中添加4个方法
package com.zillion.action;

import com.opensymphony.xwork2.ActionSupport;

public class ActionDemo2 extends ActionSupport{

    public String add() throws Exception {
        System.out.println("增加Action执行了");
        return SUCCESS;
    }
    public String delete() throws Exception {
        System.out.println("删除Action执行了");
        return SUCCESS;
    }
    public String update() throws Exception {
        System.out.println("修改Action执行了");
        return SUCCESS;
    }
    public String select() throws Exception {
        System.out.println("查找Action执行了");
        return SUCCESS;
    }
}
  • 编写前端请求页面
    4个不同的请求方法,但有相同的请求后缀Action。
 <body>
    <a href="${pageContext.request.contextPath}/addAction.action">增加测试代码</a>
    <a href="${pageContext.request.contextPath}/deleteAction.action">删除测试代码</a>
    <a href="${pageContext.request.contextPath}/updateAction.action">修改测试代码</a>
    <a href="${pageContext.request.contextPath}/selectAction.action">查询测试代码</a>
  </body>
  • struts的配置文件
    在action属性中,name使用代表任意字符,method中的{1} 代表name属性中出现的第一个 所代替的字符,即包含Action后缀的请求都会在该Action类中查找对应的方法。
<?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="test" extends="struts-default" namespace="/">
        <action name="*Action" class="com.zillion.action.ActionDemo2" method="{1}">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值