Struts2框架下的Action实现方法详解

1 下载量 39 浏览量 更新于2024-09-05 收藏 94KB PDF 举报
"本文主要探讨了Struts 2框架中实现Action的三种方式,包括使用普通的Java类(POJO)、实现Action接口以及继承ActionSupport类。这些方式都是为了处理用户的请求并驱动业务流程。" 在Struts 2框架中,Action类是核心组件,它作为业务逻辑的控制器,接收并处理来自用户界面的请求。每种实现Action的方式都有其特点和适用场景。 1. POJO类实现 这是最简单的实现方式,只需要创建一个普通的Java类,并在其中定义一个名为`execute()`的方法,返回类型为字符串。这个方法会在用户请求匹配到Action后被调用。例如,我们创建一个`LoginAction`类,其中包含用户名和密码属性,以及对应的getter和setter方法。在`execute()`方法中,我们可以处理登录逻辑,如检查用户名和密码是否符合规则,然后根据结果返回不同的视图名称,如"ok"表示成功,"error"表示失败。 ```java package com.qst.chapter03.action; public class LoginAction { private String userName; private String password; // getters and setters... public String execute() { System.out.println("----登录的用户信息-----"); System.out.println("用户名:" + userName); System.out.println("密码:" + password); if (userName.startsWith("qst") && password.length() >= 6) { return "ok"; } else { return "error"; } } } ``` 2. 实现Action接口 另一种方式是让Action类实现Struts 2提供的`Action`接口。这个接口只有一个方法`execute()`,与POJO类实现相同。通过这种方式,你可以更明确地表示这个类是作为Struts 2 Action来使用的。但是,这种方式相比POJO类实现并没有提供更多功能,所以通常不推荐。 3. 继承ActionSupport类 最常见和推荐的实现方式是让Action类继承`ActionSupport`类。`ActionSupport`是Struts 2提供的一系列默认行为的基类,比如国际化支持、错误和异常处理等。通过继承`ActionSupport`,你可以重写或利用这些默认行为。此外,`ActionSupport`已经实现了`Action`接口,所以你不需要手动实现`execute()`方法。 ```java package com.qst.chapter03.action; import org.apache.struts2.dispatcher.HttpParameters; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String userName; private String password; // getters and setters... @Override public String execute() throws Exception { // 业务逻辑处理... return super.execute(); } // 重写或添加其他方法,如validate()进行数据校验 public void validate() { // 数据校验逻辑... } } ``` 在实际开发中,通常会结合使用`ActionSupport`类的特性,比如添加数据校验、错误处理等,以提高代码的可维护性和可扩展性。同时,Struts 2的配置文件(通常是struts.xml或struts.properties)也需要配置相应的Action映射,以便框架能够正确识别和调用Action。 总结起来,Struts 2中的Action实现方式提供了灵活性,可以根据项目需求选择最合适的实现方式。无论是POJO类、实现Action接口还是继承ActionSupport,其核心都是处理用户请求,驱动业务逻辑,并返回相应的视图。理解并熟练运用这些方式,对于构建基于Struts 2的MVC应用至关重要。