Представление bean-объекта определено дважды на одной странице, если при переходе на страницу перенаправление отсутствует - PullRequest
2 голосов
/ 01 июля 2011

У меня есть страница, где я использую bean-компонент @ViewScoped.На странице я получаю данные от bean-компонента и вызываю действие для него.Примерно так:

<h:form>
  <h:dataTable value="#{partyBean.foundOrganisations}" var="party">
    <h:column headerClass="header">
      <f:facet name="header">
        #{msgs['company.registration.number']}
      </f:facet>
      <h:commandLink value="#{party.registrationNumber}" action="#{partyBean.select}">
        <f:setPropertyActionListener value="#{party}" target="#{partyBean.selectedParty}" />
      </h:commandLink>
    </h:column>
  </h:dataTable>
</h:form>

partyBean - это @ViewScoped.Когда я попадаю на эту страницу по правилу навигации с <redirect />, все работает нормально, но когда нет <redirect />, foundOrganisations берутся из одного экземпляра компонента, но setSelectedParty вызывается в другом экземпляре компонента.бин, когда ссылка нажата.Проверено отладкой.

Почему это так?Можно ли что-то сделать, чтобы это работало без <redirect />?

1 Ответ

0 голосов
/ 16 сентября 2011

Я думаю, что это совершенно нормально.partyBean обновляется с новым взглядом.Для отправки на ту же страницу вы можете изменить commandLink с помощью кнопки и вернуть null в методе действия.Таким образом, JSF действует аналогично.

Или вы можете попытаться сохранить значение selectedparty в hiddenField (не тестировалось в JSF 2.0)

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