struts2入门之action获取表单提交数据

action获取表单提交数据,有三种方式:

1、根据ActionContext对象获取;

2、利用ServletActionContext类获取表单数据;(其实就是可以获取HttpServletRequest对象)

3、利用接口注入的方式获取表单数据;实现接口(ServletRequestAware)

其实以上三种方式都是action通过操作域对象来获取数据,和servlet中操作域对象有异曲同工之妙,

  I、通过ActionContext类获取表单提交数据,代码如下:    

 1 public class DogAction2 extends ActionSupport {
 2     @Override
 3     public String execute() throws Exception {
 4         ActionContext context = ActionContext.getContext();
 5         Map<String, Object> map = context.getParameters();
 6         Set<String> set = map.keySet();
 7         for (String key : set) {
 8             Object[] objects = (Object[]) map.get(key);//这里我之所以要转化成object数组的形式,是因为表单提交数据也有可能是复选框的情况,这里要考虑周全
 9             System.out.println(Arrays.toString(objects));
10         }
11         return "success";
12     }
13 }

  II、利用ServletActionContext类,代码如下:

 1 import org.apache.struts2.ServletActionContext;
 2
 3 import com.opensymphony.xwork2.ActionSupport;
 4
 5 public class Dog3Action extends ActionSupport {
 6     private static final long serialVersionUID = 1L;
 7
 8     @Override
 9     public String execute() throws Exception {
10         HttpServletRequest request = ServletActionContext.getRequest();
11         String username = request.getParameter("username");
12         String password = request.getParameter("password");
13         System.out.println(username + "---" + password);
14         return NONE;
15     }
16 }

  III、利用接口(ServletActionAware)注入方式获取表单数据,代码如下:(利用要实现的接口中的参数来初始化request对象,进而获取表单数据)

 1 import javax.servlet.http.HttpServletRequest;
 2
 3 import org.apache.struts2.interceptor.ServletRequestAware;
 4
 5 public class Dog4Action implements ServletRequestAware {
 6     private HttpServletRequest request;
 7
 8     @Override
 9     public void setServletRequest(HttpServletRequest request) {
10         this.request = request;
11     }
12
13     public String execute() {
14         String username = request.getParameter("username");
15         String password = request.getParameter("password");
16         System.out.println(username + "---" + password);
17         return "none";
18     }
19 }

总结:上面的后两种方式都是沿袭了servlet的方式,通过域对象来获取表单数据,第一种方式获取的表单数据是一个map集合,进而可以进一步得到具体的数据。

    接下来我会准备struts2的获取表单数据的方式。见下一篇博客。。。

时间: 2024-12-11 04:38:25

struts2入门之action获取表单提交数据的相关文章

在Action中获取表单提交数据

-----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2.Struts2 是提交表单到 Action,但 Action 没有 Request 对象,不能 直接使用 Request 对象获取数据 「可以间接使用 Request 对象获取数据」 3.Action 获取表单提交数据主要有三种方式: (1)使用 ActionContext 类 (2)使用 Ser

客户端表单提交数据方式与服务器获取数据

表单提交数据的两种方式 表单form的提交有两种方式,一种是get的方法,通过超级链接后面的参数提交过来,一种是post ,通过Form表单提交过来. post方式: <form id="form1" name="form1" method="post" action="login.aspx"> <table width="501" border="0" align=&

前端表单提交数据~php获取表单内容

上图代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <HEAD><meta http-equiv="C

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal form-material" th:object="${user}" th:action="@{/user/updateOneUserInfo}" method="post"> <input type="hidden

HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)

HTML5第8次课堂笔记 1.  模拟form表单提交数据:(get方式) <body> <formmethod="get"action="DataTest7"> <inputtype="text"name="uname"value="yang"id="myname"><br/> <inputtype="password&q

HTTP通信模拟表单提交数据

前面记录过一篇关于http通信,发送数据的文章:http://www.cnblogs.com/hyyq/p/7089040.html,今天要记录的是如何通过http模拟表单提交数据. 一.通过GET请求方式提交:最简单的一种方式 直接在链接后面跟上要提交的数据即可,比如: http://yychf.55555.io/get.do?username=yyc&password=yychf,通过http直接发送.然后在服务器端可以通过request.getParameter()方法来获得参数值.如要获

java 之 servlet如何获取表单的数据

servlet如何获取表单的数据 前端页面通过form表单的形式提交数据 服务端定义servlet接口 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcption { // 定义一个用户信息类 Users u = new User(); String username; String password; Date birthday;

thinkPHP5.0使用form表单提交数据和删除文章,不用TP的提示页面,使用弹出提示信息

form表单提交数据和删除文章时,TP的默认信息提示页面的看起来不是很好看,想要实现弹窗提示怎么做呢? 前端:可以使用前端的一个知识--iframe,iframe元素会创建包含另外一个文档的内联框架:target,规定在何处打开链接文档. 另外想要实现一个好看的方便.能重复使用的弹窗就要开发一个弹窗插件了,这里推荐使用前端的弹窗插件sweetalert.js,为了方便.重复使用我们把它成封装一个函数,页面要引入sweetalert.js的css和js文件 后端:为了方便以后重复使用,先写一个公共

html表单提交数据验证

我们在做B/S项目开发中,经常会用到表单提交数据,在页面需要做js数据验证,简单方法如下 js部分: <script type="text/javascript"> function validate_required(field, alerttxt) { with (field) { if (value == null || value == "") { alert(alerttxt); return false } else { return tru