2010-12-16 5 views
0

Я создаю приложение, которое, среди прочего, позволяет пользователям загружать документы. У меня есть основные действия create/view, которые работают отлично, но я хотел бы повторно использовать это действие в других местах.Grails: повторное использование действия

Я хочу знать, есть ли у кого указатель на то, как это сделать. Кажется, что это не очень хороший способ сделать это.

Вот несколько способов Я рассмотрел:

  1. Попробуйте сделать цепочку(). Это не работает, поскольку цепочка выполняет GET, и для загрузки вам нужен POST.
  2. Выполните основную бизнес-логику в сервисе Grails и выполните два действия, которые используют один и тот же код.
  3. Используйте модное окно JS. Я думал о модальном, который содержит iframe для «непривязанной» версии загрузки документа. Трюк здесь заключается в том, чтобы закрыть окно при загрузке.

Благодаря

--Matthias

ответ

5

Мне не нужен расширенный метод контроллера. На самом деле, я избегаю наследования, когда это возможно. Я предпочел бы разместить общий код в классе сервиса и повторно использовать его таким образом.

1

Вы можете использовать базовый класс контроллера, и поместите общую функциональность там. Затем расширьте базовый контроллер и вызовите метод из других методов действий.

+0

Мой ответ заключался не в том, чтобы предложить, что это плохой путь. Просто дать другой вариант. – Gregg 2010-12-16 20:45:51

+0

Да ... Это решение действительно. Трюк заключается в том, как это сделать. Если есть много этих «общих» действий, то базовый класс get становится громоздким. Спасибо хоть. – mlathe 2010-12-16 21:04:49