【问题标题】:Error "<f:ajax> contains an unknown id" when used to render <rich:message>用于呈现 <rich:message> 时出现错误“<f:ajax> contains an unknown id”
【发布时间】:2011-09-09 15:53:42
【问题描述】:

这是我的表格:

<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

但如果我将 &lt;rich:message ..&gt; 更改为 &lt;h:message..&gt; 它可以工作(我希望它与 rich:message 一起工作,因为它返回图像和消息)

为什么会这样?我以前从来没有发生过,直到现在。

【问题讨论】:

    标签: jsf jsf-2 richfaces glassfish-3


    【解决方案1】:

    The RichFaces component reference 告诉这个&lt;rich:messages&gt;

    13.1.1。基本用法

    ...

    &lt;rich:message&gt; 组件在 Ajax 请求之后自动呈现。这在不使用组件或通过 Ajax 请求源的 render 属性的特定引用的情况下发生。

    所以,我只需删除m_name 上的render 属性,并将&lt;f:ajax&gt; 替换为&lt;a4j:ajax&gt;

    <h:inputText id="name" value="#{register.person.name}" >
        <a4j:ajax event="blur" listener="#{register.validateName}" />
    </h:inputText>
    <rich:message id="m_name" for="name" />
    

    如果你想明确指定它,你可以在&lt;rich:message&gt;组件上设置ajaxRendered="false"

    <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" />
    

    【讨论】:

      【解决方案2】:

      对我来说,这似乎是一种富人行为。我怀疑你必须提交错误报告。

      一种解决方法是将rich:message 标记包含在div 标记内的rich:message 标记中,然后给div 标记一个id="m_name"。

      【讨论】:

        猜你喜欢
        • 2015-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-14
        • 2020-02-19
        • 1970-01-01
        相关资源
        最近更新 更多