• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风吹花落泪如雨
博客园    首页    新随笔    联系   管理    订阅  订阅

Struts2学习笔记整理(六)-----action获取表单提交数据的三种方式及在action操作域对象

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

(1)使用actionContext类 
(2)使用ServletActionContext类 
(3)使用接口注入的方式

1.使用actionContext类获取表单数据

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Form1DemoAction extends ActionSupport {

    @Override
    public String execute() throws Exception {

        // 第一种方式:使用ActionContext类获取表单数据
// 1.获取ActionContext对象 ActionContext context = ActionContext.getContext(); // 2,获取表单数据,key:表单输入项name属性值,value:输入的值 Map<String, Object> map = context.getParameters(); Set<String> keys = map.keySet(); for(String key:keys){ Object[] obj = (Object[])map.get(key); System.out.println(Arrays.toString(obj)); } return NONE; } }

  

2.使用ServletActionContext类

package form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Form2DemoAction extends ActionSupport {

    public String execute() throws Exception{
        //1.使用ServletActionContext类获取请求
        HttpServletRequest request = ServletActionContext.getRequest(); 
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String address = request.getParameter("address");
        System.out.println("username:"+username+" password:"+password+" address:"+address);

        return NONE;
    }
}

  

3.使用接口注入的方式(用得不多)

继承ServletRequestAware,request可直接注入进来,然后从中获取数据。

package form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;

public class Form3DemoAction extends ActionSupport implements ServletRequestAware{

    private HttpServletRequest request;

    public String execute() throws Exception{
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String address = request.getParameter("address");
        System.out.println("username:"+username+" password:"+password+" address:"+address);
        return NONE;
    }


    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }
}

 注:通过ServletActionContext操作域对象

/***
 * 获得方式一:通过ServletActionContext类
 * 提供的静态方法获得原始的web对象,直接和servlet的API耦合
 * 如果需要获得原始的web对象,只能选择ServletActionContext类
 * **/
public String method01()
{       
    //获得HttpServletRequest对象
    HttpServletRequest request= ServletActionContext.getRequest();
    //获得HttpServletResponse对象
    HttpServletResponse response=ServletActionContext.getResponse();
    //获得HttpSession对象
    HttpSession session=request.getSession();
    //获得Application对象
    ServletContext application=ServletActionContext.getServletContext();   
    //给web对象中封装数据
    request.setAttribute("req", "method01----req");
    session.setAttribute("sin", "method01----sin");
    application.setAttribute("app", "method01----app");
    return Action.SUCCESS;
}

  

 

posted @ 2018-02-03 16:36  风吹花落泪如雨  阅读(134)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3