相关疑难解决方法(0)

<f:ajax render>无法通过<composite:clientBehavior>工作

我有一个具有ajax的复合组件:

<composite:interface>
    <composite:attribute name="question" required="true"/>
    <composite:attribute name="value" required="false"/>
    <composite:attribute name="id" required="true" />
    <composite:clientBehavior name="alter" 
        event="change" targets="input"/>
</composite:interface>
<composite:implementation>
    <label for="#{cc.attrs.id}">
        <h:outputText value="#{cc.attrs.question}" />
    </label>
    <div class="fld">      
        <h:selectOneRadio value="#{cc.attrs.value}" id="input">
            <f:selectItem itemValue="true" itemLabel="Yes" />
            <f:selectItem itemValue="false" itemLabel="No" />
        </h:selectOneRadio>
    </div>
</composite:implementation>
Run Code Online (Sandbox Code Playgroud)

当我在我的页面中使用这个复合组件时,如下所示:

<question:yesNo question="#{myMSG['knowRegQuestion']}" value="#{vehicle.regKnown}" id="is-reg-known">
    <f:ajax event="alter" render="reg-unknown" />
</question:yesNo>
......
<h:panelGroup id="reg-unknown" styleClass="questionGroup man-veh-srch">
    ......
    <h:selectOneListbox value="#{vehicle.model}" size="1" rendered="#{vehicle.regKnown eq 'true'}">
        ......
    </h:selectOneListbox>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

ajax正在触发,模型正在正确更新,但渲染不会改变.(我尝试过各种EL表达式)另外abax响应在firebug中看起来不正确:

<?xml version='1.0' encoding='UTF-8'?>
<partial-response id="j_id1"><changes><update id="j_id1:javax.faces.ViewState:0"><![CDATA[-2911901889097730230:4227240037100614528]]></update></changes></partial-response>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?(谢谢)

ajax composite-component jsf-2.2

4
推荐指数
1
解决办法
2943
查看次数

标签 统计

ajax ×1

composite-component ×1

jsf-2.2 ×1