当前位置: 首页 > 知识库问答 >
问题:

如何在primefaces中显示包含所需消息的弹出窗口(仅当这些消息存在时)?

许胡非
2023-03-14

当我点击提交按钮时,我想显示一个带有一些inputText字段所需消息的弹出窗口。但只有在有这些信息的情况下。我在oncomplete标记上尝试了bean变量和javascript,但无法使其正常工作。如果我在p:dialog中输入visible=“true”,弹出窗口将始终显示,尽管我试图通过commandButton控制它。现在,我有这个,但弹出窗口永远不会显示:

<h:inputText id="Scheme" 
            required="true"
            requiredMessage="Required.">
</h:inputText>

<h:commandButton id="submitModify" value="#{msg['systemdetail.modify']}"
             action="#{sistem.modify}"
             oncomplete="if (#{facesContext.maximumSeverity != null}) {dlg1.show();}">
</h:commandButton>

<p:dialog id="popup"
          style="text-align:center"
          widgetVar="dlg1"
          modal="true">  
    <h:messages layout="table"/>
</p:dialog> 

我怎么能这么做?提前感谢。

共有2个答案

涂羽
2023-03-14

如果你需要检查什么样的信息,这里有一个我用primefaces制作的方法。由于primefaces oncomplete是在更新后调用的,因此通过更新包含javascript函数的组件,可以使用最新的#facesContext重新构建javascript函数。执行前的maximumSeverity}值。

<p:commandButton
    oncomplete="executeAfterUpdate()"
    update="updatedBeforeOnComplete"/>

<h:panelGroup id="updatedBeforeOnComplete">
    <script language="JavaScript" type="text/javascript">
        //
        function executeAfterUpdate(){
            if (#{facesContext.maximumSeverity==null
               or facesContext.maximumSeverity.ordinal=='1'})
            {
                // your code to execute here
                someDialog.show();
            }
        }
        //
    </script>
</h:panelGroup>
宋飞舟
2023-03-14

标准JSF和PrimeFaces不支持在*属性的中基于请求的EL评估。RichFaces是唯一支持这一点的人。此外,标准的JSF

有几种方法可以实现这一点:

>

  • 检查

    <p:dialog visible="#{not empty facesContext.messageList}">
    

    或者如果只想显示验证消息而不是所有消息

    <p:dialog visible="#{facesContext.validationFailed}">
    

    使用PrimeFaces

    <p:commandButton ... oncomplete="if (args.validationFailed) dlg1.show()" />
    

  •  类似资料:
    • 我读了关于JDialogsJOptionPane消息,但我还是无法让它工作。我有一个扩展JFrame的GUI类。我想做的就是在我的程序开始时有一个弹出窗口,通知用户一些事情。在我的主界面中,我创建了以下gui: 在那之后,我要展示橱窗。我在main方法中尝试了以下内容: 我还尝试将弹出窗口添加到GUI类中,如下所示 无论如何,我将如何使此窗口显示?我尝试过的每一种方法都编译了,但什么也没发生。 然

    • 我有一个具有必需属性的字段。当我按下Accept(接受)按钮保存一些数据而不在字段中输入任何值时,将显示一条错误消息。到现在为止,一直都还不错。但是,如果在此之后我决定单击“取消”按钮,则该错误消息将覆盖应该显示在

    • 在前两章,程序使用了同一个函数MessageBox来向使用者输出文字。MessageBox函数会建立一个「窗口」。在Windows中,「窗口」一词有确切的含义。一个窗口就是屏幕上的一个矩形区域,它接收使用者的输入并以文字或图形的格式显示输出内容。 MessageBox函数建立一个窗口,但这只是一个功能有限的特殊窗口。消息窗口有一个带关闭按钮的标题列、一个选项图标、一行或多行文字,以及最多四个按钮。

    • 这是完整的代码,这是一个滚动程序的原型,它被打破了(尽管如此),但是每当我试图点击它时,我都会看到没有响应的窗口

    • 我为android编写应用程序,它将与GCM通信。我可以得到消息,但我想在屏幕上显示它,并得到错误。 有我的代码,我在行Activity act=(Activity)上下文中有问题; 我得到错误“这个类文件的JAR属于容器'Android dependencies',它不允许修改其条目上的源附件”

    • 我希望所有测试用例的TestNG报告中都有Log4j2日志信息。 TestNG使用一个名为Reporter.java的特殊记录器类来跟踪日志输出,并将其保存在结果XML中。 在log4j中,可以简单地创建一个appender实现,路由到Reporter并注册它。 使用Log4j2中的新loggerapi,很难找到有关如何实现这一点的信息。我有一些信息可以使用Log4j完成这项工作,但不能使用Log