JSF: Визуализированная форма с поддержкой ViewScoped отображается, если значение с поддержкой RequestScoped равно true - PullRequest
0 голосов
/ 10 октября 2018

У меня есть простая страница, отображающая информацию в бине @RequestScoped, и я хотел бы отображать форму при нажатии на CommandLink.Пока это работает, я использую переменную в bean-компоненте @RequestScoped для динамического рендеринга родительского компонента формы.Проблема состоит в том, что форма использует автозаполнение компонента из простых лиц и компонентов commandLink, которые используют ajax для обновления пользовательского интерфейса формы, и они не будут работать.Если я изменю бин @RequestScoped на @ViewScoped, он будет работать.

Есть ли способ сделать это, сохранив бин @RequestScoped?

Спасибо за вашу помощь!

Пример:

    ...
    <p:commandLink actionListener="requestScopedBean.someMethod" update="contentPanel">
        <f:setPropertyActionListener value="#{true}" target="#{requestScopedBean.booleanVariable}" />
    </p:commandLink>

    <p:outputPanel id="contentPanel">
        <ui:fragment rendered="#{requestScopedBean.booleanVariable}">
            <h:form>
                <p:autoComplete value="#{viewScopedBean.someValue}" completeMethod="#{viewScopedBean.complete}" />

                <p:commandLink actionListener="#{viewScopedBean.addSomething}" update="somethingListPanel" />

                <p:outputPanel id="somethingListPanel">
                    <p:repeat value="#{viewScopedBean.somethingList}" var="som">
                        <h:outputText value="#{som.property}" />
                    </p:repeat>
                </p:outputPanel>
            </h:form>
        </ui:fragment>
    </p:outputPanel>
    ...
...