struts 获取form表单中的数据

一、通过action获取表单提交的数据:ActionContext

       

// action中的内容
public String form1(){
    System.out.println("通过action获取表单提交的数据:ActionContext");
    //获取上下文对象
    ActionContext context = ActionContext.getContext();
    //通过context.getParameters()获取参数map集合
    HttpParameters parameters = context.getParameters();
    //将map转为实体set
    Set<Map.Entry<String, Parameter>> entries = parameters.entrySet();
    //获取迭代器
    Iterator<Map.Entry<String, Parameter>> iterator = entries.iterator();
    while(iterator.hasNext()){
        Map.Entry<String, Parameter> next = iterator.next();
        System.out.println(next.getKey());
        Parameter value = next.getValue();
        for ( String  multipleValues : value.getMultipleValues()) {
            System.out.println(multipleValues);
        }
    }
    return NONE;
}

  //jsp中的类容

<form action="form_form1" method="post">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="pwd" placeholder="密码"><br>
    <input type="checkbox" name="lang" value="java">java<br>
    <input type="checkbox" name="lang" value="C#">C#<br>
    <input type="checkbox" name="lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

二、使用ServletActionContext

//action中的类容

public String form2(){
    System.out.println("使用ServletActionContext");
    HttpServletRequest request = ServletActionContext.getRequest();
    String username = request.getParameter("username");
    String pwd = request.getParameter("pwd");
    String[] lang = request.getParameterValues("lang");
    System.out.println("username:"+username);
    System.out.println("pwd:"+pwd);
    System.out.println("lang:"+ Arrays.toString(lang));
    return NONE;
}

//jsp中的类容

<form action="form_form2" method="post">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="pwd" placeholder="密码"><br>
    <input type="checkbox" name="lang" value="java">java<br>
    <input type="checkbox" name="lang" value="C#">C#<br>
    <input type="checkbox" name="lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

三、使用接口注入方式

  java代码:

package com.hp.form.action;


import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;


public class FromAction2 extends ActionSupport implements ServletRequestAware{
    private HttpServletRequest request;
    /**
     * 使用接口注入方式
     * 核心: 实现ServletRequestAware接口
     * @return
     */
    public String form(){
        System.out.println("使用接口注入方式");
        String username = request.getParameter("username");
        String pwd = request.getParameter("pwd");
        String[] lang = request.getParameterValues("lang");
        System.out.println("username:"+username);
        System.out.println("pwd:"+pwd);
        System.out.println("lang:"+ Arrays.toString(lang));
        return NONE;
    }

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

  //jsp代码

<form action="form2_form" method="post">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="pwd" placeholder="密码"><br>
    <input type="checkbox" name="lang" value="java">java<br>
    <input type="checkbox" name="lang" value="C#">C#<br>
    <input type="checkbox" name="lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

四、使用request分别获取属性,并调用bean方法(原始)

java代码

package com.hp.form.action;


import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;


public class FromAction3 extends ActionSupport {
    private String username;
    private String pwd;
    private String[] lang;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String[] getLang() {
        return lang;
    }

    public void setLang(String[] lang) {
        this.lang = lang;
    }

    /**
     * 使用request分别获取属性,并调用bean方法(原始)
     * @return
     */
    public String form(){
        System.out.println("使用request分别获取属性,并调用bean方法(原始)");
        System.out.println("username:"+username);
        System.out.println("pwd:"+pwd);
        System.out.println("lang:"+ Arrays.toString(lang));
        return NONE;
    }

}

//jsp代码

<form action="form3_form" method="post">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="pwd" placeholder="密码"><br>
    <input type="checkbox" name="lang" value="java">java<br>
    <input type="checkbox" name="lang" value="C#">C#<br>
    <input type="checkbox" name="lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

五、模型驱动封装

java代码

package com.hp.form.action;


import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import java.util.Arrays;


public class FromAction4 extends ActionSupport implements ModelDriven<User>{
   private User user = new User();
    /**
     * 模型驱动封装
     * @return
     */
    public String form(){
        System.out.println("模型驱动封装");
        System.out.println("username:"+user.getUsername());
        System.out.println("pwd:"+user.getPwd());
        System.out.println("lang:"+ Arrays.toString(user.getLang()));
        return NONE;
    }

    @Override
    public User getModel() {
        return user;
    }
}

jsp代码

<form action="form4_form" method="post">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="pwd" placeholder="密码"><br>
    <input type="checkbox" name="lang" value="java">java<br>
    <input type="checkbox" name="lang" value="C#">C#<br>
    <input type="checkbox" name="lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

六、表达式封装

java代码

package com.hp.form.action;


import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import java.util.Arrays;


public class FromAction5 extends ActionSupport {
   private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    /**
     * 表达式封装
     * @return
     */
    public String form(){
        System.out.println("表达式封装");
        System.out.println("username:"+user.getUsername());
        System.out.println("pwd:"+user.getPwd());
        System.out.println("lang:"+ Arrays.toString(user.getLang()));
        return NONE;
    }

}
扫描二维码关注公众号,回复: 4355754 查看本文章

jsp代码

<form action="form5_form" method="post">
    <input type="text" name="user.username" placeholder="用户名"><br>
    <input type="password" name="user.pwd" placeholder="密码"><br>
    <input type="checkbox" name="user.lang" value="java">java<br>
    <input type="checkbox" name="user.lang" value="C#">C#<br>
    <input type="checkbox" name="user.lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

七、List封装

java代码

package com.hp.form.action;


import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;

import java.util.Arrays;
import java.util.List;


public class FromAction6 extends ActionSupport {
     private List<User> userList;

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

    /**
     * List封装
     * @return
     */
    public String form(){
        System.out.println("List封装");
        System.out.println("username:"+userList.get(0).getUsername());
        System.out.println("pwd:"+userList.get(0).getPwd());
        System.out.println("lang:"+ Arrays.toString(userList.get(0).getLang()));
        return NONE;
    }

}

jsp代码

<form action="form6_form" method="post">
    <input type="text" name="userList[0].username" placeholder="用户名"><br>
    <input type="password" name="userList[0].pwd" placeholder="密码"><br>
    <input type="checkbox" name="userList[0].lang" value="java">java<br>
    <input type="checkbox" name="userList[0].lang" value="C#">C#<br>
    <input type="checkbox" name="userList[0].lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

八、 Map封装

package com.hp.form.action;


import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


public class FromAction7 extends ActionSupport {
    private Map<String,User> userMap;

    public Map<String, User> getUserMap() {
        return userMap;
    }

    public void setUserMap(Map<String, User> userMap) {
        this.userMap = userMap;
    }

    /**
     * Map封装
     * @return
     */
    public String form(){
        System.out.println("Map封装");
        System.out.println("username:"+userMap.get("one").getUsername());
        System.out.println("pwd:"+userMap.get("one").getPwd());
        System.out.println("lang:"+ Arrays.toString(userMap.get("one").getLang()));
        return NONE;
    }

}

jsp代码

<form action="form7_form" method="post">
    <input type="text" name="userMap['one'].username" placeholder="用户名"><br>
    <input type="password" name="userMap['one'].pwd" placeholder="密码"><br>
    <input type="checkbox" name="userMap['one'].lang" value="java">java<br>
    <input type="checkbox" name="userMap['one'].lang" value="C#">C#<br>
    <input type="checkbox" name="userMap['one'].lang" value="C++">C++<br>
    <input type="submit" value="提交">
</form>

struts.xml 配置

<package name="hp" namespace="/" extends="struts-default">
    <global-allowed-methods>regex:.*</global-allowed-methods>
    <action name="form_*" class="com.hp.form.action.FromAction" method="{1}"></action>
    <action name="form2_*" class="com.hp.form.action.FromAction2" method="{1}"></action>
    <action name="form3_*" class="com.hp.form.action.FromAction3" method="{1}"></action>
    <action name="form4_*" class="com.hp.form.action.FromAction4" method="{1}"></action>
    <action name="form5_*" class="com.hp.form.action.FromAction5" method="{1}"></action>
    <action name="form6_*" class="com.hp.form.action.FromAction6" method="{1}"></action>
    <action name="form7_*" class="com.hp.form.action.FromAction7" method="{1}"></action>
</package>

猜你喜欢

转载自blog.csdn.net/hepan_/article/details/84766433