在我的场景中,我需要使用ajax
从托管bean更改属性显示类型<h:inputText id="text1" value="#{managedBean.value}" />
<h:selectOneRadio value="#{managedBean.option}">
<f:selectItem itemValue="Yes" itemLabel="Yes" />
<f:selectItem itemValue="No" itemLabel="No" />
<f:ajax listener="#{managedBean.changeAttrDisplayType}" event="click" render="text1"/>
</h:selectOneRadio>
如果我在单选按钮中单击是,则属性(id = text1)将呈现为文本框,如果单击否,则属性(id = text1)将呈现为标签。 有可能吗?请指导我......
答案 0 :(得分:2)
是的!这个有可能!将h:inputText
和h:outputLabel
放入h:panelGroup
,并在ajax事件中重新呈现h:panelGroup
。将您想要呈现的条件放在相应的rendered
属性中,如下图所示:
<h:panelGroup id="changingPanel">
<h:outputLabel id="id1"
rendered="#{managedBean.option == 'Yes'}"
value="This is label"/>
<h:inputText id="id2" value="#{managedBean.input}"
rendered="#{managedBean.option == 'No'}" />
</h:panelGroup>
<h:selectOneRadio value="#{managedBean.option}">
<f:selectItem itemValue="Yes" itemLabel="Yes" />
<f:selectItem itemValue="No" itemLabel="No" />
<f:ajax event="click" render="changingPanel"/>
</h:selectOneRadio>
假设您选择“是”时显示outputLabel
,选择“否”时显示inputText
。