您现在的位置:首页 >> 前端 >> 内容

JavaEE之Struts2获取表单数据

时间:2017/5/25 10:01:00 点击:

  核心提示:JavaEE之Struts2获取表单数据不使用框架的话,则是使用Servlet的request对象获取,其方法分别是getParameter和getParameterMap。使用Struts2获取数据...

JavaEE之Struts2获取表单数据

不使用框架的话,则是使用Servlet的request对象获取,其方法分别是getParametergetParameterMap。使用Struts2获取数据不能使用上面的方法,不过另外封装了3种方法:

使用ActionContext类(推荐使用,解耦) 使用ServletActionContext 使用接口注入方式(相应的Action实现ServletRequestAware接口,一般不使用)

表单代码


用户名:
密码:
地址:
 

说明一下,表单是可以使用中文的不会乱码,原因是Struts2已经在struts配置中做了处理

ActionContext

action代码

@Override
public String execute() throws Exception {
    /*
     * 第一种方式:ActionContext获取
     */
    // 1、获取ActionContext对象
    ActionContext context = ActionContext.getContext();
    // 2、调用方法得到表单数据
    Map map = context.getParameters();
    for (String key : map.keySet()) {
        Object[] objects = (Object[]) map.get(key);
        System.out.println(Arrays.toString(objects));
    }
    return NONE;
}

ServletActionContext

action代码

@Override
public String execute() throws Exception {
    /*
     * 第二种方式:ServletActionContext获取
     */
    // 1、使用ServletActionContext获取request对象
    HttpServletRequest request = ServletActionContext.getRequest();
    // 2、调用方法得到表单数据
    String user = request.getParameter("user");
    String pwd = request.getParameter("pwd");
    String address = request.getParameter("address");

    System.out.println(user + " " + pwd + " " + address);
    return NONE;
}

ServletActionContext最常用的则是使用它来操作Servlet中的3大域对象,即request、session、servletContext。

HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("req", "reqValue");

HttpSession session = request.getSession();
session.setAttribute("ses", "selValue");

ServletContext context = ServletActionContext.getServletContext();
context.setAttribute("con", "conValue");

Tags:JA AV VA AE 
作者:网络 来源:Xanthuim的博