Designed by 77
加载资源 ......
感谢 ♥ 作者
先不感谢了

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会自动识别这个符号并将相应的属性值设置到对应的类(分组)的属性中。

 

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

posted @ 2020-03-11 08:25  yanggb  阅读(582)  评论(0编辑  收藏  举报