Вставка методов «Контроллеры» в «Службы»

У меня есть класс, который управляет моими загрузчиками. Он использует плагин для загрузки файлов и дополняет другую информацию и правила моего приложения.

Я пытаюсь создать службу, которая управляет некоторым поведением приложения, и замечаю, что «Службы» не распознают некоторые методы, используемые в контроллерах. Например, метод «перенаправление» работает только на контроллерах и не распознается в службах.

В одной из моих служб я пересылаю файл типа «Файл» в качестве параметра службе, но атрибуты этого «Файла» как «Исходное имя файла», размер и т. Д. Не распознаются в «Службе». Кто-нибудь может сказать мне, как мне получить эти атрибуты из «Файла», и эти методы, такие как «перенаправление», распознаются в «Службе»?


person isilva    schedule 18.10.2012    source источник


Ответы (1)


Похоже, вас немного смущают роли контроллеров и служб в Grails.

Обычный шаблон заключается в том, что контроллер получает информацию, отправленную браузером пользователя (привязка), проверяет ее, а затем, при необходимости, вызывает метод службы, чтобы что-то сделать с этими данными. Как только метод службы возвращается, контроллер либо отображает представление, либо перенаправляет, либо перенаправляет.

Таким образом, ваш сервис не должен пытаться выполнить перенаправление. Это работа контроллера, и поэтому эта функциональность недоступна для вашего сервиса.

person GreyBeardedGeek    schedule 18.10.2012