0

エラーのあるコードは次のとおりです。

<h:form>
    <rich:select defaultLabel="Seleccionar región" value="#{StaticInfo.regionElegida}">
        <f:selectItems value="#{StaticInfo.regiones.entrySet()}" var="region" itemValue="#{region.key}" itemLabel="#{region.value}" />
        <a4j:ajax event="change" render="provs" listener="#{StaticInfo.updateProvincias}" />
    </rich:select>
    <rich:select id="provs" defaultLabel="Seleccionar provincia" value="#{StaticInfo.provinciaElegida}">
        <f:selectItems value="#{StaticInfo.provincias.entrySet()}" var="prov" itemValue="#{prov.key}" itemLabel="#{prov.value}" />
        <a4j:ajax event="change" render="texto" />
    </rich:select>
    <h:outputText value="#{StaticInfo.provinciaElegida)}" id="texto" />
</h:form>

リストにはアイテムが正しく表示され、Beanにはに必要なゲッターとセッターがありprovinciaElegidaます。これで、2番目の選択の項目は、最初の選択で選択されたものによって異なります。そして、何らかの理由で、outputText要素は結果を表示していません。

ありがとうございました。

4

2 に答える 2

0

の代わりに<a4j:ajax event="change" render="texto" />、使用してみることができます<a4j:support/>

<h:selectOneMenu id="selectOneMenu"  value="#{Bean1.val1}" >
    <f:selectItems value="#{Bean1.selectItems}"/>
    <a4j:support event="onchange" action="#{Bean1.onSelectOneMenuChange}" reRender="textbox1"   />
 </h:selectOneMenu>

<h:inputText id="textbox1" value="#{Bean1.textbox1}"> </h:inputText>
于 2012-08-01T05:34:22.873 に答える
0

質問を未回答のままにしないように...

問題は、Bean が Request スコープであったことです。ルイジが説明したように:

ManagedBean が RequestScoped の場合、すべてのリクエスト (ajax リクエストも含む) に対して作成されます。マネージド Bean が同じビューで複数のリクエストを処理する必要がある場合は、ViewScoped が必要です。

私は 1 つのビューで複数のリクエストを送信しようとしていたため、Bean を「リセット」し、本来の機能を効果的に無効にしました。Bean を @ViewScope に変更すると、完全に機能しました。

于 2012-08-01T06:22:14.077 に答える