Action动作类
在Struts2的应用开发中,Action作为框架的核心类,实现对用户的请求处理,Action类被称为业务逻辑控制器
一个Action类代表依次请求或调用,每个请求的动作都对应一个Action类,一个Action类是一个独立的工作单元
Action就是用来处理一次用户请求的对象
实例代码:
第一种
/*
* 可作为一个POJO类
* 在当前类中,要有一个公共的无参的构造方法,和一个execute()方法 该方法作用:是Action类
* 的默认请求处理方法
* execute()方法的要求如下:
* 方法的权限修饰符为public
* 返回一个字符串,表示指示的下一个页面的Result
* 方法没有参数
*
*/
public class ThirdAction {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String execute() {
/*
* 在当前方法中调用service层
*/
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
System.out.println(request);
System.out.println(response);
return "success";
}
}
第二种:编写action类 实现action接口
public class FourActrion implements Action{
/*
* 定义Action接口
* 接口里包含的一些结果字符串
* Action接口中,定义默认五中逻辑视图名称
* public static final String SUCCESS=”success”; // 数据处理成功
* public static final String NONE=”none”; // 页面不跳转 相当于 return null;
* public static final String ERROR=”error”; // 数据处理发送错误
* public static final String INPUT=”input”; // 主要权限认证 比如:输入错误
* public static final String LOGIN=”login” // 权限认证(登录页面)
*/
@Override
public String execute() throws Exception {
//在这可以直接使用SUCCESS不需要“success”
return SUCCESS;
}
}
第三种:继承ActionSupport 接口里也包含了Action接口里包含的结果字符串 推荐使用
public class fifthAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{
private HttpServletRequest request;
private HttpServletResponse response;
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String execute() throws Exception {
System.out.println(request);
System.out.println(response);
return SUCCESS;
}