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

Primefaces:所需字段消息覆盖消息

楚畅
2023-03-14

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

注意:如果我使用

XHTML

<p:dialog>
<p:outputPanel>
      <h:form>

      <h:outputText value="Field:"/>
      <p:inputText id="field" value="" type="text" required="true" requiredMessage="You must complete the field" />                         
      <p:growl id="messages" showDetail="true"/>

      <p:commandButton id="dialogCancel" value="Cancel" oncomplete="confirmCancelDialog.show();"  actionListener="#{controller.addCloseWarn}" />    

      </h:form>
</p:outputPanel>
</p:dialog>

<h:form>
<p:dialog id="confirmCancelDialog" header="Warning!" widgetVar="confirmCancelDialog" modal="true" >                                         
    <p:messages id="closeMessage" showDetail="true" autoUpdate="true" />                                    
    <p:commandButton id="confirm" value="Accept" onclick="..." />  
    <p:commandButton id="decline" value="Cancel" onclick="..." />               
</p:dialog> 
</h:form>

Bean控制器

public void addCloseWarn(ActionEvent actionEvent) { 
        FacesContext.getCurrentInstance().addMessage("closeMessage", new FacesMessage(FacesMessage.SEVERITY_WARN, null, 
                          "Are you sure you want to leave the page?")); 
}

共有1个答案

樊桐
2023-03-14

取消按钮的问题是提交表单并执行验证。您可以将过程="@this"属性添加到命令按钮,因此表单的其他部分将不会被处理,并且您的addCloseWarn方法将被执行。

我还要补充一点,这可能不是message标记的标准用法。它用于显示错误、警告和成功消息,而不是确认问题。因此,请使用confirmDialog或仅使用普通文本和OK-Cancel按钮的标准对话框。

 类似资料:
  • 我有以下资料: 我需要覆盖所有jsf所需验证的输入组件消息。 默认值:"登录:验证错误。Vous Devez Indiquer une Valur。" 自定义:“登录:est要求。” 我已经在com中创建了一个属性文件。应用程序。包含以下行的foo命名消息: 此外,我已在faces配置中注册了它,如下所示: 但我仍然得到了默认的必需验证消息。

  • 我正在使用Primefaces和JSF创建selectonemenu。我想显示一条消息,上面写着“选择其中一个选项”。我该怎么做? 这是代码: 谢啦

  • 我有一个表单,有许多输入字段。我已经对html5进行了验证 当我提交表单时,没有填写这个文本框,它显示默认消息,如 有人能帮我编辑这条消息吗? 我有一个javascript代码来编辑它,但它不工作 我有以下HTML表单 验证消息我想要喜欢。 必填字段:请输入电子邮件地址 错误的电子邮件:测试@. com不是一个有效的电子邮件地址。 我试过这个。 此功能无法正常工作,您是否有其他方法来执行此操作?我

  • 我有一个工作表单,它有一个必填字段,不能为空: 如果我在请求中指定此字段,但将该字段保留为空,则会得到以下响应: 如果我在请求中省略此字段,我将得到以下响应: 有没有一些内置的Symfony逻辑,我可以用它来使第二个例子与第一个例子相匹配? [编辑]使用的是Symfony 2.5-现在更新为Symfony 2.8。同样的问题。

  • 我想覆盖服务器faces web应用程序中的默认Hibernate验证程序消息,因此我阅读了这部分文档:https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/chapter-message-interpolation.html#section-消息插值 我在文件夹中创建了两个文件:和。文件内容为: 我使用的是德语版本

  • 如何覆盖symfony2中的表单验证消息。虽然有一个验证。与xml文件相关的模型类。我认为它验证了一个基于html5的表单。 “请匹配要求的格式”,“请填写此字段”。是否有任何方法覆盖此验证消息。 请在这方面帮助我,我被困了一天多,因为我对symfony是全新的