zoukankan      html  css  js  c++  java
  • webwork使用ajax传递实体类数据

    我们知道,webwork是类级别的拦截,一个类对应一个request上下文,webwork中的action中的一个方法可以对应一个url,acfion类中的所有方法共享action类中的所有变量。因此,当需要给url传递参数的时候,需要在action类中定义变量并给出相对应的getter和setter方法,才能在请求的时候传递参数。

    使用ajax传递单个的参数非常简单,通过参数名:参数值的形式即可。

    $.ajax({
        type: 'post',
        url: '/yanggb.action',
        data: {
            id: 'yanggb',
            code: 'yanggb',
            name: 'yanggb'
        },
        success: function() {
            alert('逐个传递单个参数成功');
        }
    });

    后台接收只需要定义单个普通类型的类成员属性即可。

    private String id;
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }

    但是如果需要传递十几个参数呢,这样逐个定义类成员变量显然不现实,因此可以通过将这些类成员变量封装成一个对象类,然后定义一个类类型的类成员变量即可。

    public class Yanggb {
        private string id;
        private String code;
        private String name;
        
        // 省略gettter和setter
    }

    然后在action类中定义一个类类型的类成员变量,并添加相应的getter和setter方法。

    private Yanggb yanggb;
    
    public Yangggb getYanggb() {
        return yanggb;
    }
    
    public void setYanggb(Yanggb yanggb) {
        this.yanggb = yanggb;
    }

    最后,重点来了,在ajax中需要通过【对象名.属性名】的形式构造要传递的参数。

    $.ajax({
        type: 'post',
        url: '/yanggb.action',
        data: {
            ’yanggb.id': 'yanggb',
            'yanggb.code': 'yanggb',
            'yanggb.name': 'yanggb'
        },
        success: function() {
            alert('一次性传递多个参数成功');
        }
    });

    关键在于这个【.】符号,相当于一个分组,webwork会自动识别这个符号并将相应的属性值设置到对应的类(分组)的属性中。

    "随着年龄的增长会自动开启的,除了饮酒和做爱的合法权利,大概就只剩下生长之后的衰老。"

  • 相关阅读:
    选择筛选
    添加标签2 jquery 和JS
    最全的常用正则表达式大全
    Javascript和ECMAScript二三事
    display:none和visibility: hidden二三事
    说人话
    渐进增强和优雅降级
    css的优先级以及!important的使用
    解决VS如何同时打开两个工程(xp和win7)
    jQuery验证控件jquery.validate.js使用说明+中文API
  • 原文地址:https://www.cnblogs.com/yanggb/p/12450530.html
Copyright © 2011-2022 走看看