Validation 项目阶段[开发]:未处理的消息-JSF

Validation 项目阶段[开发]:未处理的消息-JSF,validation,jsf,Validation,Jsf,我得到两条验证消息,一条是正确的,另一条在表单顶部,当鼠标悬停在上面时会显示Project Stage[开发]:未处理的消息,我如何隐藏此消息 <h:outputLabel for="username">Please enter your username: </h:outputLabel> <h:inputText id="username" value="#{user.id}" required="tru

我得到两条验证消息,一条是正确的,另一条在表单顶部,当鼠标悬停在上面时会显示Project Stage[开发]:未处理的消息,我如何隐藏此消息

                 <h:outputLabel for="username">Please enter your username: </h:outputLabel>
            <h:inputText id="username" value="#{user.id}" required="true">
                <f:ajax event="blur" render="usernameMessage" />
            </h:inputText>
            <h:message id="usernameMessage" for="username" />
web.xml

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

javax.faces.explait_EMPTY_STRING_SUBMITTED_VALUES_为_NULL
真的

这是一个开发警告,应该表明开发人员犯了错误。你根本不应该有未处理的faces消息。提供适当的
,并确保它也在ajax请求中更新

<h:message for="Username" />
或者干脆删除整个上下文参数;它默认为
生产


与具体问题无关,您的
属性错误,与输入组件的ID不匹配。或者,输入组件的ID不遵循标准HTML/CSS代码约定。它应该是
camelCase
,而不是
TitleCase
。所以,使用

<h:outputLabel for="username" ... />
<h:inputText id="username" ... />
<h:message for="username" ... />


毕竟,这也是你具体问题的潜在主要原因。您已经正确使用了
,但由于输入组件使用了无效的组件ID
用户名,因此无法显示消息,我遇到了类似的错误。为了解决这个问题,我必须将h:message放在它用于的组件之后。有没有办法将h:message/s放在组件之前,以便在组件上方呈现?
<h:messages/>
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
</context-param>
<h:outputLabel for="username" ... />
<h:inputText id="username" ... />
<h:message for="username" ... />