关于Struts2框架Action获取表单提交的数据

  1. 之前在Web阶段,提交表单都是到Servlet,在Servlet里面,使用request对象的方法获取。request.getParameter(“表单元素的名称”); getParameterMap
  2. 现在我们要把表单填写的数据提交到Action,但Action本身没有request,不能直接使用request。

         

  1. Action中获取表单提交的数据主要有如下三种方式:

-          ① 使用ActionContext类

-          ② 使用ServletActionContext类

-          ③ 使用接口注入的方式实现(基本不用)

 

使用ActionContext类获取:

  

Struts2框架提供了ActionContext类来访问ServletAPI,ActionContext是Action执行上下文对象,在ActionContext中保存了Action执行所需要的所有对象,包括parameters,request,session,application等下面列举ActionContext类访问Servlet API 的几个常用方法,具体如表所示:

 

  1. Map<String,Object>  getParameters()因为这个方法不是静态方法,需要创建ApplicationContext对象
  2. 这个ApplicationContext类对象不是new出来的,是通过下面这个静态方法获取
  3. 具体演示:

-          ① 创建表单提交表单到action里面

 

-          ② 配合struts.xml文件

-          ③ 在action里面使用ActionContext获取到数据

 

=========================================================================

使用ServletActionContext来访问 (程序员比较喜欢用)

为了直接访问Servlet API,Struts2  框架还提供了ServletActionContext类,该类包含了几个常用的静态方法具体如下:

static HttpServletRequest getRequest():获取Web应用的HttpServletRequest对象

static HttpServletResponse getResponse():获取Web应用的HttpServletResponse

static ServletContext getServletContext():获取Web应用的ServletContext

static PageContext getPageContext():获取Web应用的PageContext对象

 

接下来,讲解如何通过ServletActionContext来访问Servlet API

  1. 调用类里面的静态的方法,得到Request对象,login2.jsp如下
  2.          struts.xml

    -          LoginAction2

    -          控制台结果:

猜你喜欢

转载自www.cnblogs.com/gu-bin/p/9761986.html