Веб Зображення Новини Групи Блоги Перекладач Gmail Ще »
Групи, які ви переглядали нещодавно | Довідка | Увійти
Головна сторінка Груп Google
проекты на Grails
Занадто багато тем, що мають бути показані першими. Для того, щоб показати тему першою, зніміть цю опцію з іншої теми.
Під час обробки вашого запиту сталася помилка. Будь ласка, повторіть вашу спробу пізніше.
флаг
  17 повідомлення - Згорнути всі  -  Перекласти все вказаною мовою: Перекладено (переглянути всі оригінали)
Група, до якої ви додаєте допис, - група Usenet. Відтак, будь-хто в Інтернеті бачитиме вашу електронну адресу.
Вашу відповідь не було надіслано.
Ваш допис надіслано
 
Від:
Кому:
Копія:
Продолжить:
Додати копію: | Додати продовження: | Редагувати тему
Тема:
Підтвердження:
З метою підтвердження введіть символи, наведені на зображенні нижче, або числа, які чуєте, натиснувши значок доступу. Прослухайте і введіть цифри, що чуєте
 
Добрый день!
Скажите, есть здесь кто-то, кто сейчас занимается проектом(ами),
сделанным на Grails?
Я начал один доморощенный проект, и сталкиваюсь с проблемами, которые
наверняка уже кто-то решал. Нужен хороший совет "с поля боя".

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Привет.
Есть такие.
Задавай свои вопросы без стеснения :) Будем рады помочь.

On 7 янв, 22:14, Sergey Bondarenko <ente...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Здорово!

В-общем, первая проблема:
У меня есть объект домена Pilot, у которого есть много
ClassConfirmation. Связь один-ко-многим.
Не устраивает поведение pilot show view.
При нажатии на ссылку classConfirmation (одиниз экземпляров
подчинённого класса)  я перехожу на classConfirmation show view,
откуда нету обратной ссылки на pilots show view. Хочется кнопку "back"

Как лучше всего организовать такую функциональность?

On 7 янв, 22:44, vlad.kasyane...@gmail.com wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Ты используешь скаффолднутые вьюшки?

Ну в общем случае используя тэг <g:link controller="pilot" action="show"
id="${pilot.id}">Back to pilot</g:link>
pilot.id - написал условно. как ты его будешь доставать зависит от того
какая модель доступна на вьюшке classConfirmation. возможно в твоем случае
это будет classConfirmation.pilot.id

2009/1/7 Sergey Bondarenko <ente...@gmail.com>


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Да, использую скаффолднутые.

Мне бы хотелось, чтобы back работал по-разному для двух случаев:
1. confirmation show view был вызван из pilot show view, тогда back
должен возвращать на pilot show view
2. confirmation show view был вызван из confirmation list view, тогда
back должен возвращать на confirmation list view

Да, "Back to pilot" - здесь ты прав. Мне бы хотелось также, чтобы back
был информативным - было понятно, куда мы вернёмся.
Тоесть "Back to pilot"/"Back to confirmation list".

On 7 янв, 23:11, "Vlad Kasyanenko" <vlad.kasyane...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

ну тогда нужно "пробрасывать" в confirmation show view информацию откуда ты
пришел. первое что приходит в голову это формировать уришку вида
/pilot/show/123 или /confirmation/list в соответсвующих вьюшках и
пробрасывать get параметром (backUri, например). формировать можно так:
g.createLink controller: controller, action: action, id: id

если в голову придет что-то более изящное - сообщу :)

2009/1/7 Sergey Bondarenko <ente...@gmail.com>


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Ага, ну вот, супер!  Это тот способ, к которому я в конце-концов
склоняюсь.

Ещё я пробовал таким образом - сделать это через Grails Webflow.

Теоретически эта штука как раз для этого предназначена.
На практике получается ряд "вредных" ограничений, как например - что
делать, если управление передаётся в другой контроллер.
Или как обрабатывать save подчинённого объекта, не передавая
управление (flow) в его контроллер.
Плюс то, что модель нельзя определить внутри action какого-либо
состояния, а можно только лишь параметры в обработке on("событие")
{[параметры]}.

Ты работал с Webflow? Может я чего-то не понимаю?

On 7 янв, 23:40, "Vlad Kasyanenko" <vlad.kasyane...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Здравствуйте.

Работаю с Grails Webflow уже достаточно долго. Очень удобная штука для
построения визардов.
Насчет передачи управления в другой контроллер. В Grails есть понятие
subflow, Вы можете использовать в основном флове вложенные фловы. Это
позволяет вкладывать визарды один в один. Вопрос передачи контроля в
другой контроллер отпадает - используется флов из другого контроллера
как вложенный (например для редактирования какого либо объекта).
Последнего "но" по поводу определения модели внутри экшена не понял,
не могли бы Вы перефразировать?!

8 января 2009 г. 2:12 пользователь Sergey Bondarenko
<ente...@gmail.com> написал:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Добрый день!
За subflow спасибо - я посмотрю. Насчёт модели внутри экшена, покажу на
примере.
Я хочу в начальном состоянии manageFlow рендерить список объектов (list
view).

Хотелось бы писать так:
    def manageFlow = {
        listState {
            action{
                [pilotInstanceList:Pilot.list(params)]
            }
            render(view:'/pilot/list')
        }
    }

но так делать нельзя, и поэтому я пишу так:

    def manageFlow = {
        start {
            action{
                [pilotInstanceList:Pilot.list(params)]
            }
            on('success').to 'listState'
        }

        listState {
            render(view:'/pilot/list')
        }
    }

Непонятно, почему нельзя в action{} определить модель, и её использовать в
том же state для рендеринга.

8 января 2009 г. 9:18 пользователь Bogdan Danilyuk
<danilyuk...@gmail.com>написал:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
А! Вот вы о чем :-)
Изначально тоже это не особо понравилось, но потом привык.
Я использую action'ы для начальной инициализации визарда и для
определения следующего шага визарда если он, к примеру, зависит от
введёных на предыдущем шаге данных.
Советую обратить внимание на эти не задокументированные соглашения при
использовании сабфловов:
http://www.nabble.com/Webflow-subflow---novice-musings-td17425431.html

8 января 2009 г. 12:02 пользователь Sergey Bondarenko
<ente...@gmail.com> написал:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Спасибо за ссылки! Да, неочевидные соглашения в Grails Webflow есть местами.
 А Вы никогда не сталкивались с тем, что Grails путает flows?
К примеру, я описываю showFlow в классе StudentController -
showState{render(view:'/student/show')}, и в классе CourseController - -
showState{render(view:'/course/show')}
Так вот когда я из course list view открываю course show view, на самом деле
отображается student show view.

Выглядит так, как будто Grails считает, что showState из CourseController -
это showState из StudentController.
Самое удивительное, что ссылка в броузере корректная:
http://localhost:8080/pilots/course/show/1

8 января 2009 г. 12:19 пользователь Bogdan Danilyuk
<danilyuk...@gmail.com>написал:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Да, сталкивался...
Поэтому каждый флов именуется по-разному, обидная штука! Человеко
понятный урл можно сделать потом только урл мапингами.
Там есть еще много некрасивостей... Например - теряются интерцепторы
если положить объект во флов.
Еще, кстати, под версией 1.0.4 не получилось использовать как сабфлов,
флов объявленный в другом классе. Воркэраунд пока не нашел. Как найду
- поделюсь.

8 января 2009 г. 15:46 пользователь Sergey Bondarenko
<ente...@gmail.com> написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Ууу, мне не человеко-понятный url нужен, я переопределяю show flow для обоих
контроллеров. Тоесть, мне нужно изменить работу show view.
Поэтому не получится называть их разными именами.

А откуда вообще такое ограничение? Мне кажется, оно нарушает принципы
изолированности, что ли. И принцип least surprise тоже.
Очень странно видеть в url явно указанный контроллер, при этом на страничке
- результаты flow из неизвестно какого другого контроллера.

8 января 2009 г. 16:05 пользователь Bogdan Danilyuk
<danilyuk...@gmail.com>написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Прошу прощения, я Вас дезинформировал, то поведение которое я описал
уже пофиксили (только что проверил).
Вы скорее всего столкнулись с вот этим багом
http://jira.codehaus.org/browse/GRAILS-3254

8 января 2009 г. 16:19 пользователь Sergey Bondarenko
<ente...@gmail.com> написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

С этим багом я уже столкнулся раньше, хотя и в JIRA не находил ещё. Поэтому
использую имена типа состояний во flow типа showAction, showState и т.п.
При этом проблема одинаковых названий flow в разных control-ах остаётся.
А где пофиксили тот баг? Интересно взглянуть.

8 января 2009 г. 16:51 пользователь Bogdan Danilyuk
<danilyuk...@gmail.com>написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
В джире не нашел, но создал два флова в разных контролах и все заработало.
Точно помню что подобная проблема была.
Позже посмотрю повнимательней.

8 января 2009 г. 16:57 пользователь Sergey Bondarenko
<ente...@gmail.com> написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Ага, могу прислать пример, в котором не работает, если надо.
Спасибо за помощь!

8 января 2009 г. 17:21 пользователь Bogdan Danilyuk
<danilyuk...@gmail.com>написал:

...

читати далі »


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Кінець повідомлень
« Повернутися до обговорень « Новіша тема     Старіша тема »

Створити групу - Групи Google - Домашня сторінка Google - Правила користування послугою - Заява про конфіденційність і нерозголошення інформації
©2009 Google