Grails - 组合来自多个域的数据并返回控制器

问题描述 投票:0回答:1

我有一个控制器,我需要从多个域中获取数据,并结合返回到视图。在 GSP 页面中,我使用 jquery ajax 来调用此 coltroller。

我创建了一个包装类,它包装来自多个域的数据并以 json 形式返回。但 json 不正确。

有人遇到过这样的问题吗?请分享与此相关的任何信息。

class XYZController {

class XYZData {
    public ArrayList<String> date;
    public ArrayList<String> Name;
}

def getXYZData() {
    ArrayList<String> dateList = XYZDomain.executeQuery("select distinct date from XYZDomain")
    log.info(dateList);

    ArrayList<String> nameList = ABCDomain.executeQuery("select distinct Name from ABCDomain")
    log.info(nameList);

    XYZData data = new XYZData();
    data.date = dateList;
    data.Name = nameList;

    log.info(data)

    render(data as JSON)

    }
}

提前致谢。

jquery json grails grails-domain-class grails-controller
1个回答
1
投票

好的,试试这个:

def getData(){

       def returnList = [] 
       List <String>list1 = XYZDomain.executeQuery("select distinct date from XYZDomain") 
       List <String>list2 = ABCDomain.executeQuery("select distinct Name from ABCDomain")
 
       //iterating both lists
       list1.each { lst ->           
           def map = [:]
           map.date = lst
           returnList << map
       }
 
       list2.each { lst -> 
           def map = [:]
           map.name = lst
           returnList << map
       } 

       render returnList as JSON 
}

这应该可以解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.