Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jsf: submit дочерней страници 
:(
    Опции темы
v2v
Дата 21.4.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



используя jsp:include скомпоновал страницу из 4х дочерних. последняя из которых - форма. 
Что надо прописывать в navigation правилах  , что бы заменялась только одна дочерняя страница (форма) при сабмите , а не вся главная страница ?

благодарю.


--------------------
PM   Вверх
ivg
Дата 22.4.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Что то мне кажется, что дело не в JSF. smile Так работают браузеры. Для не полной перезагрузки страницы знаю только два способа: использовать фрейм, ну или AJAX и JavaScript иже с ним. Мож кто ещё что подскажет.
PM MAIL   Вверх
v2v
Дата 22.4.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



попробую описать ситуацию.
есть 
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 в целом!

Это сообщение отредактировал(а) v2v - 22.4.2008, 08:22


--------------------
PM   Вверх
ivg
Дата 22.4.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Понял. Нужны шаблоны. Не знаю как с этим обстоит дело в JSP, есть ли там что-то кроме jsp:include.
Посоветую использовать facelets, там с этим делом всё почти замечательно.  smile 
PM MAIL   Вверх
v2v
Дата 22.4.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



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

Добавлено через 30 секунд
наверное так правильней. остановлюсь на этом варианте . спасибо smile.


--------------------
PM   Вверх
ivg
Дата 22.4.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(v2v @  22.4.2008,  10:09 Найти цитируемый пост)
остановлюсь на этом варианте

На каком? jsp:include?
Я бы в всё таки настоятельно рекомендовал посмотреть на facelets. Чтобы не быть голословным приведу небольшой пример:
вот шаблон common.xhtml, точки включения доп. контента определяются через тег <ui:insert name="somename"></ui:insert>:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:c="http://java.sun.com/jstl/core">
  
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title><h:outputText value="#{app.name}: " /><ui:insert name="page.title">Page Title</ui:insert></title>
    <link rel="stylesheet" type="text/css" href="#{request.contextPath}/css/basic.css" />
    <ui:insert name="page.style"></ui:insert>
  </head>
<body bgcolor="#ffffff" style="margin: 0px 0px 0px 0px;">
  <table style="border: 1px solid #CAD6E0; height: 100%; width: 100%" align="center"
    cellpadding="0" cellspacing="0" border="0">
    <tbody>
      <tr>
        <td height="1" width="100%" bgcolor="#CAD6E0">
          <ui:insert name="page.header">Page Header</ui:insert>
        </td>
      </tr>
      <tr>
        <td align="left" width="100%" valign="top" style="height: 150px">
          <ui:insert name="page.body">Page Body</ui:insert>
        </td>
      </tr>
      <tr>
        <td colspan="2" align="center" valign="bottom" height="1"
          width="100%" bgcolor="#CAD6E0">
        <ui:insert name="page.footer">Page Footer</ui:insert>
        </td>
      </tr>
    </tbody>
  </table>
</body>
</html>

Вот пример самой страницы, которую можно будет указывать в правилах навигации:
Код

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">

<f:view>
  <ui:composition template="common.xhtml">
    
    <ui:define name="page.header">
      <h:outputText value="Hello " style="font-size: 12px;" />
      <h:outputText value="#{sessionScope['SESSION_USER'].userName} !!!" style="font-weight: bold; font-size:12px;" />
    </ui:define>
    
    <ui:define name="page.body">
      <h:form id="f0">
        <table><tr>
          <td style="text-align: center; vertical-align: top;">
            <ui:include src="menu.xhtml" />
          </td>
          <td style="vertical-align: top;">
            <div style="width:768px; min-width:768px; border: 1px #738959 solid; padding: 5px; vertical-align: top;">
              <ui:insert name="page.content"></ui:insert>
              
              <h:messages fatalClass="fatal_message" errorClass="error_message"
                warnClass="warn_message" infoClass="info_message" />
            </div>
          </td>
        </tr></table>
      </h:form>

    </ui:define>

  </ui:composition>

</f:view>
</html>

здесь мы указываем только содержимое точек включения. Определяем тегом<ui:define name="page.header">...</ui:define> с соответствующим атрибутом name. Здесь же мы в свою очередь, можем определить новые точки включения, содержимое которых будет определено на других страницах и т. д. Глубина вложенности вроде не ограничена.
Мне кажется это гораздо привлекательнее, чем возится с jsp:include.

PM MAIL   Вверх
alexsmirnov
Дата 22.4.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.8.2005

Репутация: 5
Всего: 7



В проекте RichFaces есть компонент a4j:include, делает именно то что хочет автор. Тег работает и в JSP, и в facelets
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1208 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.