Grails 在不调用数据库的情况下,将数据从一个控制器操作传递到另一个控制器操作

Grails 在不调用数据库的情况下,将数据从一个控制器操作传递到另一个控制器操作,grails,grails-2.0,grails-controller,grails-services,Grails,Grails 2.0,Grails Controller,Grails Services,我正在使用Grails2.4.4 我有以下细节 projectController def index(){ def projectList = REST WEB SERVICE CALL TO GET LIST OF PROJECT FROM DB. } def search1(){ // AJAX CALL def projectList = REST WEB SERVICE CALL TO GET LIST OF PROJECT FROM DB. def r

我正在使用Grails2.4.4

我有以下细节

projectController
def index(){

    def projectList = REST WEB SERVICE CALL TO GET LIST OF PROJECT FROM DB.
}

def search1(){  // AJAX CALL

    def projectList = REST WEB SERVICE CALL TO GET LIST OF PROJECT FROM DB.
    def resultList = SEARCHING PROJECTNAME FROM ABOVE projectList.
}

def search2(){ // AJAX CALL

    def resultList = SEARCH BY PROJECTNAME FROM EXISTING projectList WITHOUT MAKING CALL FROM DB.
}
我知道控制器是无状态的


即使projectList保持不变,我也要打电话给DB

是否有任何方法可以从现有的projectList中搜索,而无需从DB中重新加载它

我正在grails中寻找类似JSF视图范围的功能


谢谢。

为什么不创建一个服务,在服务启动时从数据库加载列表,然后在服务中公开一个方法,以便在从控制器调用时返回结果?您还可以将列表的加载移动到服务中,使用任意数量的grails缓存插件并缓存结果。有很多种方法可以做到这一点。我使用的是grails服务,上面的代码只用于Eg。感谢您对grails缓存插件的建议。我将查看缓存插件并让您知道。“即使projectList保持不变,我也必须调用DB?”--如果您的应用程序正在调用web服务以获取此信息,您的应用程序如何知道列表没有更改?如果你这样做了,那么按照Joshua Moore的建议进行缓存。