错误“”包含未知 ID”当用于渲染

发布于 2024-12-03 13:11:51 字数 970 浏览 0 评论 0原文

这是我的形式:

<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

但是如果我将 更改为 ; 它有效(我希望它与 rich:message 一起使用,因为它返回图像和消息)

为什么会发生这种情况?以前从来没有发生在我身上,直到现在。

This is my form:

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

When i try to execute on Glassfish gives the follow error :

javax.servlet.ServletException: <f:ajax> contains an unknown id 'm_name' - cannot locate it in the context of the component name

But if i change <rich:message ..> by <h:message..> it works (I want it works with rich:message because it returns an image and a message )

Why this is happening ? Never happened with me before, until now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那支青花 2024-12-10 13:11:51

RichFaces 组件参考 讲述这关于<丰富:消息>

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

如果您仍想显式指定它,可以在 组件上设置 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" />

The RichFaces component reference tells this about the <rich:messages>:

13.1.1. Basic usage

...

The <rich:message> component is automatically rendered after an Ajax request. This occurs without the use of an component or a specific reference through the render attribute of the Ajax request source.

So, I'd just remove the render attribute on m_name and replace <f:ajax> by <a4j:ajax>.

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

If you want to explicitly specify it anyway, you can set ajaxRendered="false" on the <rich:message> component.

<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" />
倾`听者〃 2024-12-10 13:11:51

对我来说,这看起来像是富人的行为。我怀疑您必须提交错误报告。

解决方法是将 rich:message 标记包含在 div 标记内的 rich:message 标记内,然后为 div 标记指定 id="m_name"。

Looks like a richfaces behavior to me. I suspect you will have to file a bug report.

A work-around is to enclose the rich:message tag inside a rich:message tag inside a div tag, then give the div tag an id="m_name".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文