Struts2是一个基于MVC设计模式的Web应用框架,它通过将请求和响应分离,使得开发人员可以更加专注于业务逻辑的处理,在Struts2中,Action是处理用户请求的核心组件,它负责接收请求、处理业务逻辑并返回响应,本文将介绍Struts2实现Action的方法。
1、继承ActionSupport类
在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(),以下是一个简单的示例:
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注解来验证输入字段,其他属性和方法与之前的例子相同。
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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复