0

レンダリングパラメータのf:ajaxタグで動的に生成されたIDに問題があります。エラーが発生します:

Component with id:pak_Internet not found

viewId=/start.xhtml
location=C:\servers\apache-tomcat-7.0.29\temp\tst-web-war\start.xhtml
phaseId=RENDER_RESPONSE(6)

Caused by:
javax.faces.FacesException - Component with id:pak_Internet not found
at org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer.getComponentId(HtmlAjaxBehaviorRenderer.java:411)

コード:

<ui:repeat var="servicesPhones" value="#{cc.attrs.limits.servicesLimits}">  
            <h:selectOneMenu
                value="#{cc.attrs.limits.phoneSelected}">
                **<f:ajax render="pak_#{servicesPhones.name}" event="change" execute="@this"/>**
                <f:selectItems value="#{cc.attrs.limits.getPhones(servicesPhones.name)}" />
            </h:selectOneMenu>

            <h:panelGroup id="pak_#{servicesPhones.name}">
                <ui:repeat var="pak" value="#{cc.attrs.limits.getPackages(servicesPhones.name)}">
                    #{pak.name}<br/>
                </ui:repeat>
            </h:panelGroup>
</ui:repeat>

これを解決する方法はありますか?

4

1 に答える 1

1

これらのEL式を属性から削除するだけidです。意志自体は<ui:repeat>すでにそれらのIDの一意性を保証し、正しいIDをすでに更新しています。

<f:ajax ... render="pak" />
...
<h:panelGroup id="pak">

JavaScriptまたはCSSでJSFで生成されたHTML表現を識別/選択できるという唯一の理由でこれらのEL式を使用した場合は、を介して別のアプローチを探す必要がありますstyleClass

于 2012-09-05T11:39:44.080 に答える