核心提示:JavaEE之Struts2获取表单数据不使用框架的话,则是使用Servlet的request对象获取,其方法分别是getParameter和getParameterMap。使用Struts2获取数据...
JavaEE之Struts2获取表单数据
不使用框架的话,则是使用Servlet的request对象获取,其方法分别是getParameter和getParameterMap。使用Struts2获取数据不能使用上面的方法,不过另外封装了3种方法:
使用ActionContext类(推荐使用,解耦) 使用ServletActionContext 使用接口注入方式(相应的Action实现ServletRequestAware接口,一般不使用)表单代码
说明一下,表单是可以使用中文的不会乱码,原因是Struts2已经在struts配置中做了处理
ActionContext
action代码
@Override public String execute() throws Exception { /* * 第一种方式:ActionContext获取 */ // 1、获取ActionContext对象 ActionContext context = ActionContext.getContext(); // 2、调用方法得到表单数据 Mapmap = 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");