ActionSupport与action是Struts2框架中的两个重要的概念。在Struts2中,action是处理客户端请求的Java类,而ActionSupport则是一个实现了Action接口的具体类。下面将详细介绍ActionSupport与action之间的区别。
1. ActionSupport是一个实现了Action接口的具体类,提供了一系列用于处理请求的方法。它实现了一些常用的方法,如获取HttpServletRequest对象、设置错误信息、重定向等,简化了开发过程。
2. Action是一个处理具体请求的Java类,它负责接收来自客户端的请求,并根据请求的参数进行相关处理和产生相应的结果。Action通过配置文件中的 3. ActionSupport继承自Action接口,并对其进行了扩展和实现了一些通用的方法。因此,ActionSupport可以作为一个基类,为其他具体的Action类提供一些通用的功能,如获取国际化资源、实现参数校验等。 4. ActionSupport提供了许多方便的方法,用于处理请求参数、验证用户输入等。例如,它提供了一个validate()方法,可以在执行具体的业务逻辑之前对用户输入进行验证,并且提供了一些便捷的验证方法,如validateRequiredField()、validateStringLength()等。 5. ActionSupport还提供了一些用于处理错误和异常情况的方法。例如,它提供了一个addError()方法,用于添加错误消息到错误集合中,然后在结果页面上显示给用户。它还提供了一个addActionError()方法,用于向错误集合中添加一条全局错误消息。 6. ActionSupport还有一些用于重定向和转发的方法,如redirectAction()、redirect()、dispatcher()等。这些方法可以方便地实现页面的跳转和重定向功能。 下面是一个简单的示例来说明ActionSupport和action的使用: 1. 首先在struts.xml配置文件中定义一个action,映射到一个URL。 ```xml ``` 2. 创建一个LoginAction类,继承自ActionSupport,实现业务逻辑。 ```java public class LoginAction extends ActionSupport { private String username; private String password; public String execute() { if ("admin".equals(username) && "admin123".equals(password)) { return SUCCESS; } else { addActionError("Invalid username or password!"); return INPUT; } } // getters and setters } ``` 在这个示例中,LoginAction继承自ActionSupport,并实现了execute()方法来处理登录请求。当用户名和密码验证通过时,返回SUCCESS,重定向到welcome.jsp页面;否则,添加一条错误消息到错误集合中,并返回INPUT,转发到login.jsp页面。在login.jsp页面中可以通过 总之,ActionSupport是一个实现了Action接口的具体类,提供了一系列用于处理请求的方法,可以作为其他具体的Action类的基类来提供通用功能和便捷方法,从而简化开发过程。而action则是具体处理客户端请求的Java类,通过配置文件中的
发表评论 取消回复