Jsf 对话框不隐藏在html中,直接呈现在页面上

Jsf 对话框不隐藏在html中,直接呈现在页面上,jsf,primefaces,jsf-2,xhtml,Jsf,Primefaces,Jsf 2,Xhtml,我有一个p:dialog,它通常不会显示在页面上,当我激活它时,它会在新窗口中显示为一个弹出窗口 <p:dialog id="dialogAdressvalidierung" header="Adresse auswählen" widgetVar="popupAdrValidierung" modal="true" draggable="true"

我有一个
p:dialog
,它通常不会显示在页面上,当我激活它时,它会在新窗口中显示为一个弹出窗口

<p:dialog id="dialogAdressvalidierung"
              header="Adresse auswählen"
              widgetVar="popupAdrValidierung"
              modal="true"
              draggable="true"
              showEffect=""
              hideEffect=""
              width="900"
              resizable="false"
              appendTo="@(body)">
    <!--dialogs content-->
</p:dialog>
执行上面的java代码后,xhtml文件中的所有对话框都显示在html中,页面看起来非常扭曲。由
p:dialog
生成的
div
元素的一些属性,如
aria hidden=“true”
role=“dialog”
,消失了:

<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-hidden-container"
     id="dialogAdressvalidierung">
    <!--content-->
</div>


为什么p:对话框的html输出不再隐藏?如何使对话框不显示在页面上,并且仅在激活时才弹出?

为什么要以这样的方式从服务器上刷新页面?因为如果不这样做,jsf会生成重复的ID,就像这里讨论的:在我的案例中,没有给出任何解决方案。您发布的链接只提到了在这种情况下由重复的ajax更新导致的“重复id”错误。还有一些关于重复id的帖子都有不同的原因。因此,与其试图修复由工作负载引起的问题,不如修复原始问题。您现在实际上遇到了一个问题。对于接下来的问题/评论,请阅读(我还没有否决)哦,我不知道,有这么多不同原因的重复id问题。谢谢你提供的信息。我没有意识到页面刷新是一种解决方法,因为它被深深地写入了我正在工作的程序中,以至于程序的许多部分都频繁地调用它。所以我认为这就是使用jsf的方法。因此,问题中描述的问题似乎与我想象的不同。现在不知道该如何处理这个线程…为什么要用这样的方式刷新服务器上的页面?因为如果我不这样做,jsf会生成重复的id,就像这里讨论的那样:在我的情况下,没有给出任何解决方案。您发布的链接只提到重复的ajax更新导致的“重复id”错误。还有一些关于重复id的帖子都有不同的原因。因此,与其试图修复由工作负载引起的问题,不如修复原始问题。您现在实际上遇到了一个问题。对于接下来的问题/评论,请阅读(我还没有否决)哦,我不知道,有这么多不同原因的重复id问题。谢谢你提供的信息。我没有意识到页面刷新是一种解决方法,因为它被深深地写入了我正在工作的程序中,以至于程序的许多部分都频繁地调用它。所以我认为这就是使用jsf的方法。因此,问题中描述的问题似乎与我想象的不同。现在不确定如何处理此线程。。。
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ViewHandler viewHandler = application.getViewHandler();
UIViewRoot viewRoot = viewHandler.createView(context, context.getViewRoot().getViewId());
context.setViewRoot(viewRoot);
context.renderResponse();
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-hidden-container"
     id="dialogAdressvalidierung">
    <!--content-->
</div>