jsf - p:dialog 未隐藏在 html 中并直接呈现在页面上
问题描述
我有一个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>
html输出通常是这样的
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-hidden-container ui-draggable"
id="dialogAdressvalidierung"
role="dialog"
aria-hidden="true"
aria-labelledby="dialogAdressvalidierung_title"
style="width: 900px; height: auto;">
<!--content-->
</div>
但是,在一种情况下,我需要刷新服务器上的页面。
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();
执行上面的java代码后,xhtml文件中的所有对话框都显示在html中,页面看起来非常扭曲。元素的一些属性,如aria-hidden="true"
和role="dialog"
,由div
p:dialog
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-hidden-container"
id="dialogAdressvalidierung">
<!--content-->
</div>
为什么 p:dialog 的 html 输出不再隐藏?如何使对话框不显示在页面上并且仍然仅在激活时弹出?
解决方案
推荐阅读
- amazon-web-services - AWS Batch 作业 - 设备上没有剩余空间,但启用了 EBS 自动缩放
- go - 如何将日志消息保存到文件(labstack/echo)
- appium - Appium TouchAction 精准滚动
- mongodb - 当使用 $graphLookup 后跟 $limit 的 mongodb 聚合时,mongodb 会优化 $graphLookup 以仅找到第一个 $limit 文档吗?
- r - DartR - FUN(X[[i]], ...) 中的错误:仅在具有所有数值变量的数据帧上定义
- flutter - 如何更改 Flutter table_calendar 包中的标题格式
- ajax - 为什么加载更多按钮在点击后消失而不是显示帖子?
- reactjs - React 构建,但 index.html 为空或 404page
- audio - 重复音频播放而不重叠
- google-apps-script - 如何使用 Google Apps 脚本过滤列中的所有值?[谷歌表格]