信息: 警告:人脸消息已排队,但可能尚未显示



我创建了一个带有表单的用户界面,用于从用户那里获取信息。当我提交表单时,它会在服务器日志中打印以下警告:

INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_idt7:j_idt11[severity=(ERROR 2), summary=(j_idt7:j_idt11: Validation Error: Value is not valid), detail=(j_idt7:j_idt11: Validation Error: Value is not valid)]

我试图解决它,但我不明白如何解决。这个问题是如何引起的,我该如何解决?

至于引用未显示Validation Error: Value is not valid消息的警告,这意味着您在某个地方有一个没有关联<h:message><h:selectXxx>组件(例如<h:selectOneMenu>),因此 JSF 无法直接在 UI 中显示有关转换/验证错误的人脸消息。

为了修复特定警告,只需添加一个<h:message>

<h:selectOneMenu id="foo" ... />
<h:message for="foo" />

请注意,当您使用 <f:ajax> 提交表单时,您不应该忘记在 ajax-update 中包含消息。首先,使用 render="@form" 更新整个窗体。

至于消息中提到的具体验证错误问题,请转到以下答案:验证错误:值无效。

如果您使用的是素数,请不要忘记添加:

    <h:form>
        <p:growl id="messages" showDetail="true" />
        ....
    </h:form>

这是无效值问题。很可能您输入了字符而不是整数值。检查这一点,我建议异常处理不再遇到此类问题。

最新更新