当前位置:  开发笔记 > 编程语言 > 正文

需要将Java中的数组传递给javascript

如何解决《需要将Java中的数组传递给javascript》经验,为你挑选了1个好方法。

我正在使用Play Framework 1.x.

有没有办法将数组从控制器传递给模板作为Javascript数组?



1> Drew H..:

当你从javascript到Java进行POST或GET时,Play会自动映射你的参数.您可以使用renderJSON方法将对象从Java传递到javascript.然后使用像jQuery这样的东西将它映射到数组.也许如果你给我们一些背景信息,我们可以帮助你一点点.

    public static void getContactsTable() {
    List contacts = Contacts.findAllOrderByInserted();
    renderJSON(contacts);
}

然后将其映射到路线.

 $.getJSON("@{ViewContacts.getContactsTable()}", function(data) {                  
        var series = { 
            data: []
        };    
        $.each(data, function(index, item) {            
            series.data.push([parseInt(item.date), item.qty]);                
        }); 

        options.series.push(series);

        var chart = new Highcharts.Chart(options);
    });    

这是我所做的高图表的一个小例子.

这是另一个以另一种方式然后再发送数据以在页面上呈现的示例.

    public static void testing(List selected) {

    List contacts = new ArrayList();

    for (Long index : selected) {
        Contacts contact = contactService.findById(index);
        contacts.add(contact);
    }
    renderJSON(contacts);
}

这需要一个javascript数组.如您所见,映射会自动将其映射为列表.你也可以拥有一个java数组.

这是javascript函数.

       var template = 'selectedTemplate';
 var selectedOutput = '#selectedOutput';
        $.post('@{ViewContacts.testing()}',{ selected : selected }, function(data) {
                    $(selectedOutput).html(tmpl(template, { items:data }));  
                });

    

正如您所看到的,这也是一个ajax请求.我正在获取所选数据(这只是一个选定节点的数组),然后将其传递给函数.然后我获取数据(函数(数据))并将其映射到items数组.我正在使用ejohn作为模板.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有