struts2 action

Struts2是一个基于MVC设计模式的Java Web框架,用于构建Web应用程序。在Struts2中,Action是处理用户请求的核心组件,负责解析请求参数、执行业务逻辑并生成响应结果。

Struts2是一个基于MVC设计模式的Web应用框架,它通过将请求和响应分离,使得开发人员可以更加专注于业务逻辑的处理,在Struts2中,Action是处理用户请求的核心组件,它负责接收请求、处理业务逻辑并返回响应,本文将介绍Struts2实现Action的方法。

1、继承ActionSupport类

struts2 action

在Struts2中,最简单的实现Action的方法是继承ActionSupport类,ActionSupport类提供了一些常用的方法,如execute()、input()、success()等,这些方法可以直接使用,无需重写,以下是一个简单的示例:

import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport {
    private String message;
    public String execute() {
        message = "Hello, Struts2!";
        return SUCCESS;
    }
    public String getMessage() {
        return message;
    }
}

在这个示例中,我们创建了一个名为MyAction的类,它继承了ActionSupport类,我们定义了一个名为message的属性,并在execute()方法中为其赋值,当用户访问这个Action时,execute()方法会被调用,然后返回一个表示成功状态的字符串(如"success")。

2、实现Action接口

除了继承ActionSupport类之外,我们还可以通过实现Action接口来创建自定义的Action,Action接口只包含一个方法:execute(),以下是一个简单的示例:

struts2 action

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyAction implements Action {
    @Override
    public String execute() throws Exception {
        ActionContext context = ActionContext.getContext();
        context.put("message", "Hello, Struts2!");
        return ActionSupport.SUCCESS;
    }
}

在这个示例中,我们创建了一个名为MyAction的类,它实现了Action接口,我们在execute()方法中使用ActionContext对象将一个名为message的属性存储到值栈中,然后返回一个表示成功状态的字符串(如"success")。

3、使用注解配置Action

从Struts2.1开始,我们可以使用注解来配置Action,这种方式更加简洁,无需编写配置文件,以下是一个简单的示例:

import com.opensymphony.xwork2.Action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.interceptor.annotations.InputFields;
import com.opensymphony.xwork2.interceptor.annotations.Validations;
import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Results({ @Result(name = "success", location = "/success.jsp") })
@Action(value = "my-action", results = { @Result(name = "success", location = "/success.jsp") })
public class MyAction implements Action {
    @InputFields({ @RequiredFieldValidator(fieldName = "username", type = String.class) })
    @Validations({ @RequiredFieldValidator(fieldName = "username", type = String.class) })
    private String username;
    private Date date;
    private List<String> items;
    private Map<String, String> params;
    // getter and setter methods...
}

在这个示例中,我们使用@Action注解指定了Action的名称和结果页面,我们还使用了@InputFields和@Validations注解来验证输入字段,其他属性和方法与之前的例子相同。

struts2 action

4、使用XML配置Action

除了使用注解之外,我们还可以通过编写XML文件来配置Action,以下是一个简单的示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="default" extends="struts-default">
        <action name="my-action" class="com.example.MyAction">
            <result>/success.jsp</result>
        </action>
    </package>
</struts>

在这个示例中,我们编写了一个名为struts.xml的文件,其中定义了一个名为my-action的Action,我们指定了Action的类名(com.example.MyAction)和结果页面(/success.jsp),其他配置与之前的例子相同。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/159167.html

(0)
酷盾叔订阅
上一篇 2024-01-20 02:43
下一篇 2024-01-20 02:46

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入