美文网首页Struts2
struts表单数据的获取

struts表单数据的获取

作者: 小漫画ing | 来源:发表于2018-05-22 21:45 被阅读0次
  • 表单数据的获取有三种方式,分别是使用ActionContext类获取、使用ServletActionContext类获取、使用接口获取。

使用ActionContext类获取

首先我们需要写一个Action,并且让他继承ActionSupport,因为我们之前学过,在传值的时候,使用继承ActionContext比较多。然后我们还需要配置Struts.xml文件,重点是别忘了写前端页面

  • 第一步,来看struts.xml的配置:
<!-- 获取表单提交数据 -->
    <package name="demo2" namespace="/" extends="struts-default">
        <action name="from1" class="com.xuman.from.from1"></action>
    </package>
  • 第二步,来看前端页面的代码:

  <body>
   <form action="${pageContext.request.contextPath}/from1.action" method="post">
    username:<input type="text" name="usrename"><br>
    password:<input type="text" name="password"><br>
    address:<input type="text" name="address"><br>
    <input type="submit" value="提交">
   </form>
  </body>
  • 第三步,来看Action里面的代码:
package com.xuman.from;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;

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

public class from1 extends ActionSupport {
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        //第一种方式使用ActionContext类获取
        //1、获取ActionContext对象
        ActionContext context = ActionContext.getContext();
        //2、调用方法得到表单的数据
        //key是表单输入项name属性值,value是输入的值
        Map<String, Object> map = context.getParameters();
        Set<String> keySet = map.keySet();
        for(String key : keySet){
            //根据key得到value
            //数组形式:因为输入项里面可能有复选框情况
            Object[] objects = (Object[]) map.get(key);
            System.out.println(Arrays.toString(objects));
        }
        return NONE;
    }
}

在这里我并没有写提交的页面,但是我在Action里面让他输入了数据,结果如下:


提交数据 控制台

使用ServletActionContext类获取

  • 第一步,同样是先创建一个Action,并且配置:
package com.xuman.from;


import java.util.Arrays;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

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

public class from2 extends ActionSupport {
    @Override
    public String execute() throws Exception {
        //第二种方式使用ServletActionContext类获取
        //1使用ServletActionContext获取request对象
        HttpServletRequest request = ServletActionContext.getRequest();
        //2调用request里面的方法得到结果
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String address = request.getParameter("address");
        System.out.println(username+password+address);
    return NONE;
    }
}
    
  • 第二步,前端页面的代码:
<body>
   <form action="${pageContext.request.contextPath}/from2.action" method="post">
    username:<input type="text" name="username"><br>
    password:<input type="text" name="password"><br>
    address:<input type="text" name="address"><br>
    <input type="submit" value="提交">
   </form>
  </body>
  • 第三步,配置struts.xml:
<package name="demo3" namespace="/" extends="struts-default">
        <action name="from2" class="com.xuman.from.from2">
            <result name="none">/doudou.jsp</result>
        </action>
    </package>

输入结果如下:


提交数据
运行结果

使用接口获取(了解就好)

接口

在action中获取域对象:

相关文章