Повторное использование одной и той же страницы несколько раз - PullRequest
5 голосов
/ 14 октября 2011

Можно ли многократно использовать одну страницу, прикрепленную к разным объектам?

У меня есть страница, на которой вы можете ввести личную информацию (имя, адрес, номер социального телефона, ...) и подключиться к одному компоненту: проспект В некоторых случаях я должен собирать связанную личную информацию. пример кредитного скоринга (человек и поручитель).

Так что я хотел использовать с 2-мя включениями. Но как я могу убедиться, что include1 содержит информацию для person1, а include2 содержит информацию для person2?

<rich:tabPanel id="creditScoreTab" switchType="client" >
  <rich:tab id="mainContractor" >
    <ui:include src="includes/prospect.xhtml" />
  </rich:tab>
  <rich:tab id="guarantor">
    <ui:include src="includes/prospect.xhtml" />
  </rich:tab>
</rich:tabPanel>

и facecontext

<managed-bean>
  <managed-bean-name>prospect</managed-bean-name>
  <managed-bean-class>be.foo.Prospect</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
</managed-bean>

Я нашел 2 возможных обходных пути: -дублируйте страницу и определите 2 bean-компонента вface-config (указывая на тот же класс Java) -не использовать табуляцию и включать, но ввести информацию о персоне1, затем сохранить ее и загрузить информацию о персоне2 и сохранить персону2.

Минусом обходного пути1 является то, что он поддерживает один и тот же код дважды. Отрицательным моментом обходного решения2 является то, что он не такой «крутой» (точка зрения UX)

1 Ответ

7 голосов
/ 14 октября 2011

Вы можете использовать <ui:param> для передачи параметров в <ui:include>:

<rich:tabPanel id="creditScoreTab" switchType="client" >
  <rich:tab id="mainContractor" >
    <f:subview id="mainContractorView">
      <ui:include src="includes/prospect.xhtml">
        <ui:param name="person" value="#{bean.person1}" />
      </ui:include>
    </f:subview>
  </rich:tab>
  <rich:tab id="guarantor">
    <f:subview id="guarantorView">
      <ui:include src="includes/prospect.xhtml">
        <ui:param name="person" value="#{bean.person2}" />
      </ui:include>
    </f:subview>
  </rich:tab>
</rich:tabPanel>

В приведенном выше примере в каждом из них будет указан нужный человекбыть доступным как #{person}.Эти теги <f:subview> предназначены для предотвращения дублирования ошибок идентификатора компонента, поскольку они попадают в один и тот же родительский элемент UINamingContainer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...