gpt4 book ai didi

JSF 使用 EL 测试全局消息的存在

转载 作者:行者123 更新时间:2023-12-02 00:35:49 25 4
gpt4 key购买 nike

仅当 JSF 队列中有全局消息时,我才尝试显示 block 。

我尝试使用 rendered="#{not empty facesContext.getMessageList(null)}",但它的计算结果始终为 false。

我发现的唯一方法是创建一个自定义 EL 函数并在 java 中测试它。

例如。 :我的 el 功能:

public static boolean isFacesGlobalMessages() {
return ! FacesContext.getCurrentInstance().getMessageList(null).isEmpty();
}

JSF 页面:

<h:panelGroup class="block1" layout="block" rendered="#{el:isFacesGlobalMessages()}">
<div class="block-warn-body">
<rich:messages id="msg" globalOnly="true"/>
</div>
</h:panelGroup>

我正在使用 Mojarra 2.1.5。

我错过了什么吗?谢谢!

编辑:尝试了以下建议,但到目前为止没有运气:

  • #{非空 facesContext.getMessageList(null)} -> 始终为 false
  • #{! facesContext.getMessageList(null)} -> 错误
  • #{!空 facesContext.getMessageList(null)} -> 始终为 false
  • #{fn:length(facesContext.getMessageList(null)) > 0} -> 始终为 false
  • #{not empty facesContext.messageList(null)} -> 错误:找不到方法 messageList
  • #{not empty facesContext.messageList} -> 如果是验证错误则返回 true(我只希望在全局错误时返回 true)
  • #{! facesContext.getMessageList(null).isEmpty()} -> 抛出 IllegalAccessException:类 javax.el.BeanELResolver 无法使用修饰符“public”访问类 java.util.Collections$UnmodifyingCollection 的成员

最佳答案

不需要自定义 EL 函数

试试这个

rendered="#{not empty facesContext.messageList}"
<小时/>

编辑

我自己没有尝试过,但是尝试一下

rendered="#{not empty facesContext.messageList(null)}"

一个想法...

 rendered="#{not facesContext.validationFailed and not empty facesContext.messageList}"

关于JSF 使用 EL 测试全局消息的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11736641/

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