Jsf “错误”&书信电报;f:ajax>;包含未知id“;用于渲染时<;丰富:信息>;
这是我的表格:Jsf “错误”&书信电报;f:ajax>;包含未知id“;用于渲染时<;丰富:信息>;,jsf,jsf-2,richfaces,glassfish-3,Jsf,Jsf 2,Richfaces,Glassfish 3,这是我的表格: <h:body> <h:form> <h:panelGrid columns="3" > <h:outputLabel for="name" value="Primeiro nome:" /> <h:inputText id="name" value="#{register.person.name}" > <f:
<h:body>
<h:form>
<h:panelGrid columns="3" >
<h:outputLabel for="name" value="Primeiro nome:" />
<h:inputText id="name" value="#{register.person.name}" >
<f:ajax event="blur" render="m_name" listener="#{register.validateName}" />
</h:inputText>
<rich:message id="m_name" for="name" />
//.. others fields
</h:panelGrid>
</h:form>
</body>
//.. 其他领域
当我尝试在Glassfish上执行时,会出现以下错误:
javax.servlet.ServletException: <f:ajax> contains an unknown id 'm_name' - cannot locate it in the context of the component name
javax.servlet.ServletException:包含未知id“m_name”-无法在组件名称的上下文中找到它
但是如果我通过
更改
,它会工作(我希望它与rich:message一起工作,因为它返回一个图像和一条消息)
为什么会这样?我以前从未发生过这种事,直到现在。在我看来像是一种有钱人的行为。我怀疑你将不得不提交一份bug报告 解决方法是将rich:message标记括在div标记内的rich:message标记内,然后给div标记一个id=“m_name”。告诉我们: 13.1.1. 基本用法
组件在Ajax请求后自动呈现。这在不使用组件或通过Ajax请求源的render属性的特定引用的情况下发生
因此,我只需删除m_name
上的render
属性,并用
替换
<h:inputText id="name" value="#{register.person.name}" >
<a4j:ajax event="blur" listener="#{register.validateName}" />
</h:inputText>
<rich:message id="m_name" for="name" />
<h:inputText id="name" value="#{register.person.name}" >
<f:ajax event="blur" listener="#{register.validateName}" render="m_name" />
</h:inputText>
<rich:message id="m_name" for="name" ajaxRendered="false" />