PrimeFaces使用渲染属性多次打开对话框

时间:2013-07-02 08:07:22

标签: primefaces dialog javabeans

我尝试在我的项目中随处可访问的对话框,我想知道这个解决方案是否可行。

该对话框包含在我的项目模板中。例如,当我在登录页面上时,我想在单击“登录”按钮并且验证成功时显示对话框。所以我抓住了与对话框链接的bean:

getFacesContext()。getELContext()。getELResolver()。getValue(getFacesContext()。getELContext(),null,beanName);

我设置了“show”参数。 (看看下面)

第一次,它正在发挥作用。当我访问登录页面时,不会呈现对话框,当我单击按钮登录时,将设置属性show,页面将更新并显示对话框。但是,如果我关闭它,当我再次点击按钮时,我再也无法触发它。 (对话框已呈现但未显示)

我的对话框是这样的(我有可见=“真”因为我想在每次渲染时显示):

<h:form>
    <p:dialog header="Dialog" widgetVar="myDialog" rendered="#{bean.show}" visible="true">
        <p:ajax event="close" listener="#{bean.onClose}" />
        ...
    </p:dialog>
</h:form>

bean在viewcope中:

@ManagedBean(name = "bean")
@ViewScoped
public class MyBean {

    private boolean show; // + Getters and Setters

    @PostConstruct
    public void init() {
        this.show = false;
        ...
    }

    public void onClose() {
        this.show = false;
    }

}

我可以补充一点,我设置show参数的LoginBean也在viewScope中。

由于

0 个答案:

没有答案