带错误的代码如下:
<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
所需的getter和setter。现在,第二个选项的项目将取决于第一个选择中选择的内容。由于某种原因,outputText元素没有显示任何结果。
谢谢。
答案 0 :(得分: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>
答案 1 :(得分:0)
这样我就不会回答这个问题......
问题是bean是Request stroped。正如路易吉所解释的那样:
当ManagedBean是RequestScoped时,它将为每个人创建 请求(甚至是ajax请求!)。如果您的托管bean必须处理更多 在同一视图中,它必须具有ViewScoped。
我试图在一个视图中提交几个请求,因此“重置”bean并有效地杀死它应该做的事情。当我将bean更改为@ViewScope时,它工作得很好。