【发布时间】:2018-10-09 13:58:16
【问题描述】:
我正在使用带有 JSF、Richfaces 的 Hibernate Validator。我有一个文本区域,我在其中输入逗号分隔的电子邮件域列表。我有一个休眠的 ConstraintValidator,如果任何电子邮件域不正确,它会尽职地返回 false。在其他地方的代码中,会捕获此约束违规并在 FacesContext 中添加致命错误消息。但是在我有标签的地方没有显示错误消息。相反,我在控制台中得到了这个:
org.apache.myfaces.lifecycle.RenderResponseExecutor execute
WARNING: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.
These unhandled FacesMessages are:
- Invalid Domain Name.
版本:hibernate-validator-4.3.0.Final、myfaces-impl-2.2.12、richfaces-components-api-4.3.5.Final。 在我的项目中,几乎相同的代码已在其他页面中使用,只有支持 bean 不同,它在我的 facelet 中显示 FacesMessage 没有问题。 org.apache.myfaces.lifecycle.RenderResponseExecutor的源码我已经浏览过了:
List<FacesMessage> messageList = facesContext.getMessageList();
if (!messageList.isEmpty())
{
StringBuilder builder = new StringBuilder();
boolean shouldLog = false;
for (int i = 0, size = messageList.size(); i < size; i++)
{
FacesMessage message = messageList.get(i);
if (!message.isRendered())
{
builder.append("\n- ");
builder.append(message.getDetail());
shouldLog = true;
}
}
if (shouldLog)
{
log.log(Level.WARNING, "There are some unhandled FacesMessages, " +
"this means not every FacesMessage had a chance to be rendered.\n" +
"These unhandled FacesMessages are: " + builder.toString());
}
}
如果我查看页面源代码,我可以看到它在那里:
<div class="error_block">
<span>Error </span> <br />
<table id="errorMessages"><tr><td class="displayErrorMessage">Invalid Domain Name.</td></tr></table>
</div></span>
但如果我执行 F12,它就不存在了。所以不知何故,它不是 DOM 的一部分。
【问题讨论】:
-
请在您喜欢的搜索引擎中发布您遇到的错误并检查结果...错误/警告是优秀的搜索条件
-
我已经完成了足够的谷歌搜索,阅读了 StackOverflow 中的其他答案并浏览了 myfaces 的源代码。
-
这没有显示在您的 Q...中。在How to Ask(您应该已经阅读过创建帐户)中,它声明 “搜索,研究...并保留跟踪您找到的内容。即使您在网站的其他地方没有找到有用的答案,包括指向没有帮助的相关问题的链接也可以帮助其他人了解您的问题与其他问题有何不同。"而不是以minimal reproducible example 风格发布您的 代码,而是发布MyFaces 代码。 MyFaces 通常是正确的,所以问题在于您的代码中有 99% 的确定性。
-
和 "在我的项目中,几乎相同的代码已在其他页面中使用,只有支持 bean 不同" 几乎是相关部分...您确定 xhtml 页面是相同的吗?
-
我已经发布了 MyFaces 代码,因为当我去调试按预期工作的页面时: List
messageList = facesContext.getMessageList(); messageList 是空的,而它没有按预期工作的页面,messageList 不是空的。
标签: jsf richfaces hibernate-validator myfaces