专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Action获取数据(对象方式、模型驱动、集合方式)

1、以对象方式获取表单数据

(1)创建一个User的JavaBean:

public class User {
    private String password;
    private Integer userage;
    private String username;
    public Integer getUserage() {
        return userage;
    }

    public void setUserage(Integer userage) {
        this.userage = userage;
    }

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User{" +
                "password='" + password + '\'' +
                ", userage=" + userage +
                ", username='" + username + '\'' +
                '}';
    }
}

(2)创建一个表单用于收集用户的信息:

    <body>
            <form action="${pageContext.request.contextPath}/h/Action">
                用户名:<input type="text" name="user.username"/><br>
                密码:<input type="password" name="user.password"/><br>
                年龄:<input type="text" name="user.userage"/><br>
                       <input type="submit" value="提交"/>
            </form>
    </body>

(3)struts.xml配置文件:

<struts>
    <package name="hello" namespace="/h" extends="struts-default">
        <action name="Action" class="pers.zhb.hello.Action" method="execute">
            <result name="success" type="dispatcher">/form.jsp</result>
        </action>
    </package>
</struts>

(4)书写Action类,获取表单提交的数据:

public class Action extends ActionSupport{
    private User user;
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
        public String execute(){
            System.out.println("用户的信息为:"+user.toString());
            System.out.println("用户名为:"+user.getUsername());
            System.out.println("密码为:"+user.getPassword());
            System.out.println("年龄为:"+user.getUserage());
            return "success";
        }
}

(5)测试结果:

表单数据:

96_1.png

Action获取到的数据:

96_2.png

2、模型驱动的方式提交数据

(1)创建User的JavaBean

(2)创建表单:

   <body>
            <form action="${pageContext.request.contextPath}/h/Action">
                用户名:<input type="text" name="username"/><br>
                密码:<input type="password" name="password"/><br>
                年龄:<input type="text" name="userage"/><br>
                       <input type="submit" value="提交"/>
            </form>
    </body>

与以对象的方式提交相比name属性有变化。

(3)配置struts.xml配置文件

(4)书写Action类:

public class Action extends ActionSupport implements ModelDriven<User> {
    private User user=new User();
    public String execute(){
        System.out.println("用户的信息为:"+user.toString());
        System.out.println("用户的用户名为:"+user.getUsername());
        System.out.println("用户的密码为:"+user.getPassword());
        System.out.println("用户的年龄为:"+user.getUserage());
        return null;
    }
    @Override
    public User getModel() {
        return user;
    }
}

这里需要实现一个接口。

(5)测试:

向表单输入数据:

96_3.png

控制台打印Action获取的数据:

96_4.png

缺点:模型驱动的方式每一个Action只能获取到一个对象。

3、List集合方式

(1)表单:

<form action="${pageContext.request.contextPath}/h/Action">
                       <input type="text" name="list"/><br>
                       <input type="text" name="list[3]"/><br>
                       <input type="submit" value="提交"/>
</form>

(2)Action类:

public class Action extends ActionSupport{
    private List<String> list;
    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public String execute(){
        System.out.println(list);
        return null;
    }
}

(3)测试:

96_5.png

96_6.png

可以指定数据在list集合中的位置。

4、Map集合方式

(1)表单:

   <form action="${pageContext.request.contextPath}/h/Action">
                       <input type="text" name="map['zhai']"/><br>
                       <input type="submit" value="提交"/>
   </form>

表单必须指定提交的键,该键以提交的数据成为键值对。

(2)Action:

public class Action extends ActionSupport{
    private Map<String,String> map;
    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }

    public String execute(){
        System.out.println(map);
        return null;
    }
}

(3)测试:

96_7.png

96_8.png

文章永久链接:https://tech.souyunku.com/23121

未经允许不得转载:搜云库技术团队 » Action获取数据(对象方式、模型驱动、集合方式)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们