#grails #groovy
#grails #groovy
Вопрос:
В studentRegister
интерфейсе контроллера
def save() {
def studentRegister=studentRegisterService.serviceRegisterSave(params)
}
В studentRegisterService
классе
def serviceRegisterSave(params){
// get the params and do operation
}
Могу ли я получить параметры из интерфейса контроллера в класс обслуживания? Как я могу передать эту область?
Комментарии:
1. Я получаю параметры из запроса в методе сохранения контроллера. Затем я должен реализовать бизнес-логику в классе обслуживания. Итак, я могу передать параметры методу класса обслуживания, как указано выше в моем коде.
2. Спасибо. Потому что только этот бизнес-уровень я не могу запустить. Поэтому я не мог догадаться, каков результат.
Ответ №1:
Попробуйте это:
import org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap
class StudentRegisterService {
def serviceRegisterSave(GrailsParameterMap params){
// get the params and do operation
}
}
Ответ №2:
Да, вы можете передать параметры, которые находятся в области запроса. В grails 2.2.1 я сделал это в MyController.
def flag = myService.saveSomething(params)
И в MyService.
def saveSomething(params){
}
Поскольку карта параметров предоставляется grails через объект запроса. Обратитесь к документам
Но стоит ли это делать? Нет. Не рекомендуется передавать параметры в сервис
Рекомендуется извлечь требуемые значения из параметров в вашем контроллере, а затем передать их в вашем сервисе
Обратитесь к этой документации
Комментарии:
1. Спасибо за ваше предложение.
2. ссылки для меня разорваны. Замена версии на
latest
возвращает действительную актуальную документацию docs.grails.org/latest/ref/Controllers/params.html , docs.grails.org/latest/guide/services.html
Ответ №3:
вы можете использовать это
//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
}