美文网首页
获得参数的方式(三种)

获得参数的方式(三种)

作者: jose_dl | 来源:发表于2017-08-11 19:52 被阅读0次

    属性驱动

    在action中成员位置,为每个属性设置get,set方法。并且get,set方法后面的名称和前台页面的name值一样。这样才可以自动封装获得。这样就可以直接使用属性了。

        private String name;
        private Integer age;
        private Date date;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Date getDate() {
            return date;
        }
        public void setDate(Date date) {
            this.date = date;
        }
    
        public String Demo1(){
             
            System.out.println(name);
            System.out.println(date);
            
            return SUCCESS;
        }
    
    • 注意:int类型的属性,Date类型的属性自动被转换成String。实际上,只要八大基本数据类型和Date类型的属性才会被自动类型转换成String。并且Date的前台书写格式有要求:yyyy-MM-dd
    • 不足:显而易见,不会自动封装成对象。

    对象属性驱动

    • 前台页面属性提交有变化
    <form action="regist">
        <input type="text" name="user.name">
        <input type="text" name="user.age">
        <input type="text" name="user.date">
        <input type="submit">
    </form>
    
    • 后台直接封装成user对象
    private User user;
        
        public User getUser() {
            return user;
        }
        public void setUser(User user) {
            this.user = user;
        }
    
    • 注意:这里的user对象是属性,因此一定要有get,set方法
      每次给user的属性赋值,都会调用getUser方法,如果user自己没有实例化,会先调用getUser,发现是空的。然后setUser实例化,然后赋值。
    • 结论
      如果没有实例化对象,1个setUser+n个getUser
      实例化了n个getUser。前提是user有n个属性

    模型驱动

    这种提交方式,前台正常提交,只写属性名即可。
    但是这种方法有局限性,就是只能提交一个对象。

    Snip20170811_8.png

    相关文章

      网友评论

          本文标题:获得参数的方式(三种)

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