2010-02-06 3 views
2

У меня возникла странная проблема с сеансом, использующим GXT 2.1 и бэкэнд Grails 1.2. Я создаю два FormPanel s, panelA и panelB, которые представляют action1 и action2 в Grails соответственно. В action1 я устанавливаю жестко запрограммированную переменную сессии и извлекаю ее в action2, но она всегда возвращает значение null! Если я вручную перейду к действию 1, то следуйте, перейдя в action2 в браузере, он работает точно так, как ожидалось. Я попытался запустить Firefox и Safari в режиме разработки и получить тот же результат на обоих. Любые идеи о том, что я должен искать? Некоторые соответствующие фрагменты:Переменные сеанса, не связанные с GXT

В GXT:

final FormPanel panelA = new FormPanel(); 
panelA.setVisible(false); 
panelA.setAction(action1); 
panelA.setMethod(Method.POST); 
RootPanel.get().add(panelA); 
panelA.submit(); 

В Grails:

def a1 = { 
    session.a1 = "Hello A1" 
    println "Set A1 to $session.a1" 
    render "Set A1 to $session.a1" 
} 

def a2 = { 
    println "From A2, A1 is set to: $session.a1" 
    render "From A2, A1 is set to: $session.a1" 
} 
+0

Похоже, что это связано с proxyservlet, который я использую, чтобы обойти проблемы с перекрестным доменом во время разработки. Любые предложения, которые помогут вам работать с моей сессией в качестве клиента, будут оценены по достоинству. –

ответ

0

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