我有一个简单的页面,显示在@RequestScoped bean中支持的信息,并且我想在单击commandLink时显示一个表单。 到目前为止,这是可行的,我在@RequestScoped bean中使用了一个变量来动态呈现表单的父组件。 问题在于该表单使用了primefaces和commandLink组件中的自动完成组件,这些组件使用ajax更新了表单ui,并且它们将无法工作。如果我将@RequestScoped bean更改为@ViewScoped,它将起作用。
有没有办法在保持bean @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>
...