gpt4 book ai didi

jsf - 如何在 PrimeFaces 的工具提示上显示错误消息时摆脱空工具提示?

转载 作者:行者123 更新时间:2023-12-01 23:53:50 26 4
gpt4 key购买 nike

我在 <p:tooltip> 的某处显示错误消息如下。

<p:inputText id="text" value="#{bean.text}" required="true"/>

<p:tooltip for="text">
<p:message for="text"/>
</p:tooltip>

虽然它会在给定的工具提示中显示一条错误消息,但如果没有错误,则会显示一个空的/不必要的工具提示,如下图所示 - 在文本框的右下角旁边。

enter image description here

如何摆脱这些空的工具提示? (我尝试了一些但没有用)

最佳答案

可以通过检查列表中的错误消息来完成 java.util.List<FacesMessage>可以通过使用 facesContext.messageList 获得.

rendered <p:tooltip> 的属性可以根据在列表中找到的相关组件的错误消息进行设置。

rendered="#{not empty facesContext.getMessageList('clientId')}"

一个有效的代码片段:

<h:form id="form">
<p:panel id="panel">
<p:inputText id="text" value="#{bean.text}" required="true"/>

<p:tooltip for="text" rendered="#{not empty facesContext.getMessageList('form:text')}">
<p:message for="text"/>
</p:tooltip>

<p:commandButton value="Submit" update="panel"/>
</p:panel>
</h:form>

或者通过使用组件绑定(bind)。比如,

<p:inputText id="text" binding="#{inputComponent}" value="#{bean.text}"/>

<p:tooltip for="text" rendered="#{not empty facesContext.getMessageList(inputComponent.clientId)}">
<p:message for="text"/>
</p:tooltip>

甚至

<p:inputText id="text" binding="#{inputComponent}" value="#{bean.text}"/>

<p:tooltip for="text" rendered="#{not inputComponent.valid}">
<p:message for="text"/>
</p:tooltip>

最后两种情况很有用,尤其是当(输入)组件包含在迭代组件(如 <p/h:dataTable>)中时。 , <p:dataGrid> , <p:dataList> (甚至 <ui:repeat> ),其中封闭组件的唯一性是根据迭代组件的迭代行索引确定的,例如 form:dataTable:0:text , form:dataTable:1:text , form:dataTable:2:text ……等等

关于jsf - 如何在 PrimeFaces 的工具提示上显示错误消息时摆脱空工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145363/

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