Action类是Struts2框架的核心,它是所有请求处理的入口。同时,Struts2框架提供了一个基础Action类ActionSupport,它实现了Action接口,提供了一些常用的方法,方便我们编写Action类。
ActionSupport类继承自ActionContext类,提供了以下方法:
1. addActionError(String):添加一条错误消息,通常用于处理表单校验失败的情况。
2. addActionMessage(String):添加一条普通消息,例如操作成功的提示。
3. addFieldError(String, String):添加一个针对某个字段的错误消息。
4. getText(String):获取国际化资源文件中的文本。
5. getText(String, Object[]):获取带有参数的国际化资源文件中的文本。
6. getContext(): 获取ActionContext对象。
7. HttpServletRequest getRequest():获取HttpServletRequest对象。
8. HttpServletResponse getResponse():获取HttpServletResponse对象。
9. ServletContext getServletContext():获取ServletContext对象。
10. ValueStack getValueStack():获取ValueStack对象。
Action类必须实现Action接口中的execute方法,该方法通常用于处理请求。而ActionSupport类已经实现了这个方法,我们只需要继承ActionSupport类并覆盖一些方法即可。
下面举一个示例来说明ActionSupport类的使用方法。假设我们要开发一个用户登录的功能,用户输入用户名和密码后,点击登录按钮,服务器验证用户名和密码是否正确,如果正确则跳转到主页面,否则提示错误信息。
我们首先需要编写一个继承自ActionSupport的Action类:
```java
public class LoginAction extends ActionSupport{
private String username;
private String password;
// ... 省略getter和setter方法
public String execute() throws Exception{
// 验证用户名和密码是否正确
if("admin".equals(username) && "123456".equals(password)){
// 登录成功,跳转到主页面
return SUCCESS;
}else{
// 验证失败,设置错误信息
addActionError("用户名或密码错误!");
return ERROR;
}
}
}
```
在这个Action类中,我们使用了ActionSupport类中的addActionError方法来添加一条错误消息,如果登录验证失败则返回ERROR,否则返回SUCCESS。
接下来,我们需要在Struts.xml中配置Action。
```xml
ain.jsp
```
在这个配置文件中,我们定义了一个名为login的Action,它的class属性指定为com.example.action.LoginAction,同时定义了两个Result,分别对应登录验证成功和失败时的处理结果。
最后,我们需要编写JSP页面,例如login.jsp,用于接收用户输入。
```html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
用户登录
<% if (hasErrors()) { %>
- <%= error %>
<% for (String error : getActionErrors()) { %>
<% } %>
<% } %>
```
在这个JSP页面中,我们使用了ActionSupport类中的hasErrors和getActionErrors方法,分别用于判断是否有错误信息和获取错误信息列表。如果hasErrors返回true,则使用getActionErrors获取错误信息列表并显示到页面上。
以上就是关于ActionSupport类与Action的区别和使用方法的详细介绍。在实际开发过程中,使用ActionSupport类可以大大简化我们的代码,并提供了一些方便的方法,提高代码的可读性和可维护性。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复