| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Получение ApplicationModule |
| Автор: Vofka 23.10.2006, 15:11 | ||
Есть необходимость получения ApplicationModule в скриплете на jsp страницеюнашел вот такой вот способ:
я так понял что ctx это ничто иное как DataActionContext ctx.Так вот вопрос в следующем как на jsp cnhfybwt gjkexbnm этот ctx либо подскажите какой нибудь другой способ получения ApplicationModule. |
| Автор: adf 23.10.2006, 16:12 | ||||
| Изучаю технологию недавно. Тема для меня тоже интересна. Когда-то долго мучилась со способом, указанным выше, но что-то не получилось. Возможно, не самый правильный способ, найденный в результате долгих поисков. Если что, кто сталкивался с аналогичной проблемой исправьте, пожалуйста! Использую Struts. А у Вас используется Struts в приложении? Из вопроса не очень понятно: ограничения на другие способы получения ApplicationModule (Не знаю, подойдет ли под Вашу задачу, т.к. по идее, если используется Struts, и можно на action вызвать метод из AppModuleImpl, передав параметрами необходимые переменные. А в самом методе уже искать и привязывать ViewObject) Но думаю нижеописаный метод можно переработать и напрямую в jsp страницу внедрить, в крайнем случае.
|
| Автор: Vofka 23.10.2006, 18:27 | ||
Да стратс используется.Но все таки хотелось бы разобраться с описанным выше способом когда апликейшен модуль вытаскивается из контекста.Кстати нашел еще один способ но он тоже собака не работает.вернее работает но не до конца.
getDefaultDataControl()-срабатывает вроде даже находит то что надо .getApplicationModule() возвращает null. |
| Автор: adf 24.10.2006, 08:29 | ||||
Все та же знакомая конструкция:
И, кстати, тоже возвращала null, когда я с ней аналогично мучалась. ------------------------------------------------- Есть еще способ во всяких мануалах:
Тоже, впрочем, безуспешно. ------------------------------------------------ Единственный заработавший способ у меня - это который в предыдущем сообщении. ------------------------------------------------ И все-таки можно вопрос: В чем же спецефичность проблемы, что нужно использовать только такой способ? ------------------------------------------------- [Простите, это ничего, что я задаю вопросы, без конкретных советов? Мне тоже в этом интересно разобраться] |
| Автор: Nesmishlenish 24.10.2006, 10:42 |
| Возможно это немножко не то что требуется однако думаю будет интересным. AppModule am = (AppModule)bc.findDataControl(appModuleName).getDataProvider(); am.setReturnFromAdminPage(retPageURL.toString()); где bc - это переменная класса (private DCBindingContainer bc;) Суть сдесь в том что я из контроллера обращаюсь к методу написанному в AppModule и передаю ему переменную) Добавлено @ 10:55 Возможно это немножко не то что требуется однако думаю будет интересным. AppModule am = (AppModule)bc.findDataControl(appModuleName).getDataProvider(); am.setReturnFromAdminPage(retPageURL.toString()); где bc - это переменная класса (private DCBindingContainer bc;) Суть сдесь в том что я из контроллера обращаюсь к методу написанному в AppModule и передаю ему переменную) |
| Автор: Vofka 24.10.2006, 13:55 |
| Специфичность проблемы в том что у меня долбанутый начальник и ему хочется именно так. |
| Автор: Vofka 24.10.2006, 16:38 |
| Что то у меня не сработал твой метод( adf).То есть вернее он работает но почему то таблица созданная по вьюхе при разработке страницы jsp не обновляется.тоесть изначально на страницу я кидаю вьюху из датаконтрол,а потом уже на переходе на нее в action пытаюсь поставить параметры в where. |
| Автор: adf 25.10.2006, 07:03 |
| Покажи код Action`a |
| Автор: Vofka 25.10.2006, 12:48 |
| String appId = "AppModule"; String configName = "jsp.model.AppModuleLocal"; ApplicationModuleRef appModRef = SessionUtil.getAmRefFromRequest(request, appId, configName); ApplicationModule am = appModRef.useApplicationModule(); ViewObject vo = am.findViewObject("WhereObj1"); vo.setNamedWhereClauseParam("rparam", 2); vo.executeQuery(); vo.first(); System.out.println( vo.getCurrentRow().getAttribute(1)); System.out.println( vo.getRowCount()); |
| Автор: Vofka 25.10.2006, 14:15 |
| Кстати нашел что то типа туторила мож кому поможет http://www.oracle.com/webapps/online-help/jdeveloper/10.1.2/state?navSetId=_&navId=4&vtTopicFile=developing_mvc_applications/adf_pviewcustommethod.html&vtTopicId= |
| Автор: adf 25.10.2006, 15:18 | ||
| Так и не получилось чтоли у тебя? Жалко, что тебе этот способ (ссылку ты кинул) ты не можешь использовать, ввиду желания руководства. Я тебе предлагала именно этот способ в самом начале еще). С ним проблем нет. Хотя, если ты уже вынес вызов в action, ничего не помешает тебе сделать вызов методом, описанным в статье. А вот метод-то получения AppModule рабочий!! Другое дело - что вьюха не обновляется. Возможно, ты вызываешь этот кусок кода не в том месте. По приведенному куску акшена вообще сложно что-то сказать Не вижу ни класса, от которого экстендится твой акшн, ни метода, где получаем appModule и вьюху. Не поняла, что за ошибки возникли.. Что значит:
Т.е. отбор РАБОТАЕТ, но на странице отображается старая вьюха? |
| Автор: Vofka 25.10.2006, 15:40 | ||
именно так. |
| Автор: adf 25.10.2006, 15:59 |
| Нужна инфа о твоем action еще раз, подробнее пожалуйста: класс, от которого экстендится твой акшн, метод, где получаем appModule и вьюху. |
| Автор: Vofka 26.10.2006, 15:18 | ||
|