我有 2 个 managedBean:第一个 (RequestScoped) 通过 ah:commandLink 向第二个 (ViewScoped) 发送参数。两个 managedBeans 都在同一个页面中,但我在 Rich:TabPanel 的不同选项卡中使用它们:
@ManagedBean
@RequestScoped
public class TheRequestScopedManagedBean {
private String number
...
@ManagedBean
@ViewScoped
public class TheViewScopedManagedBean {
private String number;
...
这是视图,它使用了rich:dataTable:(操作方法仅用于显示rich:tabPanel 中的第二个选项卡)。
// ... another dataTable's columns
<rich:column>
<f:facet name="header">Number</f:facet>
<b>
<a4j:commandLink value="#{theRequestScopedManagedBean.number}"
render="someRichPanel" action="#{anotherBean.showSecondTab}" immediate="true">
<f:setPropertyActionListener target="#{theViewScopedManagedBean.number}" value="#{theRequestScopedManagedBean.number}" />
</a4j:commandLink>
</b>
</rich:column>
这里的问题是 ViewScopedBean 仅在第一次显示该值,而当我再次尝试传递它时,它会显示其默认值(null)。
我在这个网站上看到了几个问题。但我真的不知道在这种情况下该怎么办。