我试图找出如何使用标签" ui:fragment"来完成这项工作。我使用的是JSF 2.2和Richfaces 4。
我有一个组合,当我选择一个值时,我想要显示或隐藏我所选择的值函数中的ui:fragment内的代码。
组合:
<rich:select id="mycombo" valueChangeListener="#{controller.comboChangeListener}"
selectFirstOnUpdate="false" value="#{controller.myComboValue}">
<f:selectItems value="#{controller.getValues}" var="object" itemLabel="#{object.label}" itemValue="#{object.id}"/>
<a4j:ajax event="selectitem" render="myHiddenFragment" />
</rich:select>
片段:
<ui:fragment rendered="#{controller.isMyValueSelected}" id="myHiddenFragment">
<!-- Lots of things going on here -->
</ui:fragment>
控制器:
private boolean isMyValueSelected = false;
public void comboChangeListener(final ValueChangeEvent event) {
if (event.getNewValue().equals(IConstantes.ID_THIS_VALUE)) {
this.isMyValueSelected = false;
} else {
this.isMyValueSelected = true;
}
}
我想我错过了一些非常愚蠢的东西,但是我没有看到它。
谢谢!