Вставка методов "Контроллеры" в "Сервисы"
У меня есть класс, который управляет моими пользователями. Он использует плагин file-uploader 'и дополняет другую информацию и правила моего приложения.
Я пытаюсь создать службу, которая управляет некоторыми поведениями приложения, и замечаю, что "Службы" не распознают некоторые методы, используемые в контроллерах. Например, метод 'redirect' работает только на контроллерах и не распознается в службах.
В одном из моих сервисов я пересылаю файл типа "Файл" в качестве параметра к сервису, но атрибуты этого "Файла" как "Исходное имя файла", размер и т. Д. Не распознаются в "Сервисе". Кто-то может сказать мне, как я могу получить эти атрибуты из "Файла", и эти методы как "перенаправление" распознаются в "Сервисе"?
1 ответ
Похоже, вы немного запутались в роли Контроллеров и Сервисов в Grails.
Обычным шаблоном является то, что Контроллер получает информацию, отправляемую браузером пользователя (привязку), проверяет ее, а затем, если необходимо, вызывает метод Service, чтобы что-то делать с этими данными. Как только метод службы возвращается, контроллер затем визуализирует, пересылает или перенаправляет.
Таким образом, ваш сервис не должен пытаться сделать перенаправление. Это задача контроллера, и поэтому эта функциональность недоступна для вашего сервиса.