java action接口_2.5.1 实现Action接口

本文介绍了如何在Struts 2中通过实现Action接口改进控制器,以实现更规范的Action类。Action接口提供了如SUCCESS、ERROR等标准化的返回值常量,简化了execute方法的返回值处理。示例展示了LoginAction类如何实现Action接口,根据用户输入返回相应的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.5  改进控制器

通过前面介绍,读者已经可以完成简单的Struts 2的基本应用了,但还可以进一步改进应用的Action类,例如该Action类可以通过实现Action接口,利用该接口的优势。前面应用的Action类没有与JavaBean交互,没有将业务逻辑操作的结果显示给客户端。

2.5.1  实现Action接口

表面上看起来,实现Struts 2的Action接口没有太大的好处,仅会污染该Action的实现类。事实上,实现Action接口可以帮助开发者更好地实现Action类。下面首先看Action接口的定义:

public interface Action

{

//下面定义了5个字符串常量

public static final String SUCCESS = "success";

public static final String NONE = "none";

public static final String ERROR = "error";

public static final String INPUT = "input";

public static final String LOGIN = "login";

//定义处理用户请求的execute抽象方法

String execute() throws Exception;

}

在上面的Action代码中,我们发现该Action接口里已经定义了5个标准字符串常量:SUCCESS、NONE、ERROR、INPUT和LOGIN,它们可以简化execute方法的返回值,并可以使execute方法的返回值标准化。例如处理成功,则返回SUCCESS常量,避免直接返回一个success字符串(程序中应该尽量避免直接返回数字常量、字符串常量等)。

因此,借助于上面的Action接口,我们可以将原来的Action类代码修改为如下:

程序清单:codes\02\struts2qs\WEB-INF\src\lee\LoginAction.java//实现Action接口来实现Struts 2的Action类

public class LoginAction implements Action

{

//下面是Action内用于封装用户请求参数的两个属性

private String username;

private String password;

//username属性的getter和setter方法

public String getUsername()

{

return username;

}

public void setUsername(String username)

{

this.username = username;

}

//password属性的getter和setter方法

public String getPassword()

{

return password;

}

public void setPassword(String password)

{

this.password = password;

}

//处理用户请求的execute方法

public String execute() throws Exception

{

//当用户请求参数的username等于crazyjava,密码请求参数为leegang时,

//返回success字符串,否则返回error字符串

if (getUsername().equals("crazyjava")

&& getPassword().equals("leegang"))

{

return SUCCESS;

}

else

{

return ERROR;

}

}

}

对比前面Action和此处的Action实现类,我们发现两个Action类的代码基本相似,除了后面的Action类实现了Action接口。因为实现了Action接口,故Action类的execute方法可以返回Action接口里的字符串常量。

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值