Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > jsf: submit дочерней страници |
Автор: v2v 21.4.2008, 22:50 |
используя jsp:include скомпоновал страницу из 4х дочерних. последняя из которых - форма. Что надо прописывать в navigation правилах , что бы заменялась только одна дочерняя страница (форма) при сабмите , а не вся главная страница ? благодарю. |
Автор: ivg 22.4.2008, 07:25 |
Что то мне кажется, что дело не в JSF. ![]() |
Автор: v2v 22.4.2008, 08:21 |
попробую описать ситуацию. есть page1.jsp , page2.jsp ... pageN.jsp result1.jsp ... resultN.jsp error1.jsp ... errorN.jsp Прикол jsf в том, что в navigation rules (хмл) я красиво расписываю с какой страницы , куда будет осуществляться переход и при каких условиях. Усложняем приложение, на каждую страницу надо добавить одинаковую заголовочную часть и одинаковую панельку, слева. Получается ацкое повторения кода. Решение : я создаю index.jsp с общим кодом, и в зависимости от условий выбираю какую из page показывать. И вот тут появляется проблема : result и error тоже надо показывать через страницу index.jsp но тогда все navigation rules теряют смысл , а значит теряет смысл и jsf в целом! |
Автор: ivg 22.4.2008, 08:52 |
Понял. Нужны шаблоны. Не знаю как с этим обстоит дело в JSP, есть ли там что-то кроме jsp:include. Посоветую использовать facelets, там с этим делом всё почти замечательно. ![]() |
Автор: v2v 22.4.2008, 10:09 |
ну по сути это будет первый вариант с дублированием кода ... на каждой странице включение заголовок.jsp , левая_часть.jsp и т.д. плюс их форматирование. Добавлено через 30 секунд наверное так правильней. остановлюсь на этом варианте . спасибо ![]() |
Автор: ivg 22.4.2008, 10:55 | ||||
На каком? jsp:include? Я бы в всё таки настоятельно рекомендовал посмотреть на facelets. Чтобы не быть голословным приведу небольшой пример: вот шаблон common.xhtml, точки включения доп. контента определяются через тег <ui:insert name="somename"></ui:insert>:
Вот пример самой страницы, которую можно будет указывать в правилах навигации:
здесь мы указываем только содержимое точек включения. Определяем тегом<ui:define name="page.header">...</ui:define> с соответствующим атрибутом name. Здесь же мы в свою очередь, можем определить новые точки включения, содержимое которых будет определено на других страницах и т. д. Глубина вложенности вроде не ограничена. Мне кажется это гораздо привлекательнее, чем возится с jsp:include. |
Автор: alexsmirnov 22.4.2008, 18:59 |
В проекте RichFaces есть компонент a4j:include, делает именно то что хочет автор. Тег работает и в JSP, и в facelets |