我可以将params从控制器传递到服务类

时间:2014-06-19 03:58:14

标签: grails groovy

studentRegister控制器界面

def save() {
    def studentRegister=studentRegisterService.serviceRegisterSave(params)
}

studentRegisterService班级

def serviceRegisterSave(params){
    // get the params and do operation
}

我可以从控制器接口到服务类接收参数吗?我怎样才能通过哪个范围?

3 个答案:

答案 0 :(得分:1)

试试这个:

import org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap

class StudentRegisterService {

    def serviceRegisterSave(GrailsParameterMap params){
        // get the params and do operation
    }
}

答案 1 :(得分:1)

,您可以传递请求范围内的参数。在Grails 2.2.1中,我在MyController中完成了这个。

def flag = myService.saveSomething(params)

在MyService中。

def saveSomething(params){
}

因为param map是由grails通过请求对象提供的。 Refer docs

但你应该这样做吗?不。在服务中传递params不是一个好习惯

建议从控制器中的params中提取所需的值,然后将其传递给您的服务

参考this docs

答案 2 :(得分:0)

你可以用这个

//in controller same as yours
 def save() {
 def studentRegister=studentRegisterService.serviceRegisterSave(params)
 }
 //change your service as below given
 def serviceRegisterSave = { params ->
 // get the params and do operation
 }