gpt4 book ai didi

未显示 primefaces 消息

转载 作者:行者123 更新时间:2023-12-02 06:19:26 30 4
gpt4 key购买 nike

我得到了一个带有 single_selection 数据表和一个命令按钮的页面。命令按钮调用一个 bean 方法来验证是否进行了选择。如果不是,它应该显示一条消息警告用户。如果进行了选择,它将导航到另一个页面。

问题是当没有选择时不显示任何消息。如果进行了选择,它就可以正常工作。

这是页面的代码:

<h:body>
<h:form id="form">
<p:dataTable id="TablaSociedades" var="soc" value="#{Sesion.tablaSociedades}" emptyMessage="No hay Registros que Mostrar" selection="#{Sesion.sociedadUsuario}">
<f:facet name="header">Sociedades asociadas al Usuario</f:facet>
<p:column selectionMode="single" style="width:18px" />
<p:column>
<f:facet name="header">
<h:outputText value="Sociedad" />
</f:facet>
<h:outputText value="#{soc.nombreSociedad}" />
</p:column>
<f:facet name="footer">
<p:commandButton action="#{Sesion.mostrarMenu()}" value="Continuar" process=":form" />
</f:facet>
</p:dataTable>
<br/>
<div>
<p:messages id="messages2" showDetail="true" autoUpdate="false" closable="true" />
</div>
</h:form>
</h:body>

以及 bean 方法的代码:

  public boolean mostrarMenu()
{
boolean resp = true;

if (sociedadUsuario.getNombreSociedad().equals("")) //no selection
{
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage (FacesMessage.SEVERITY_WARN,"Seleccione una Sociedad", "No puede Continuar"));
resp = false;
}

return resp;
}

我必须提到必须单击命令按钮两次,但我会针对该问题发布另一个问题。

我做了另一个带有 bean 验证的页面,其中消息显示正确,与此页面的唯一区别是另一个页面仅包含 inputText、commandbutton 和消息。

谢谢你的时间

02/25/13 faces-config.xml 文件的代码。

<navigation-rule>
<from-view-id>/elegirSociedad.xhtml</from-view-id>
<navigation-case>
<from-action>#{Sesion.mostrarMenu()}</from-action>
<from-outcome>true</from-outcome>
<to-view-id>/principal.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>

我使用重定向来避免我之前评论但无济于事的“点击两次”问题

最佳答案

最重要的是,如果您对两个或更多页面使用相同的托管 bean,请使用 for 标识您的消息。属性并在 bean 方法中创建消息时使用相同的 id。例如:

<p:messages for="MessageId" showDetail="true" autoUpdate="true" closable="true">

当您在托管 bean 中创建消息时:
FacesContext.getCurrentInstance().addMessage("MessageId", new FacesMessage  (FacesMessage.SEVERITY_WARN,"Be Warned!", "You did something wrong!"));  

因此,托管 Bean 中的每条消息在页面中都有其对应的组件。

关于未显示 primefaces 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061019/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com