美文网首页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中获取域对象:

    相关文章

      网友评论

        本文标题:struts表单数据的获取

        本文链接:https://www.haomeiwen.com/subject/wdthjftx.html