动态更改输入类型

时间:2013-02-20 10:57:36

标签: jsf

我正在使用JSF 2.2。我正在努力建立一个考试系统。有些问题有1个正确答案,有些问题有多个正确答案。据此,我的视图应显示单选按钮或复选框。我的XHTML页面中有一个硬编码示例:

<h:dataTable value="#{main.answerList}" var="list">
    <h:column>
        <h:selectBooleanCheckbox id="checkboxAnswer" value="#{list.check}"/>
        <h:outputText value="#{list.ansValue}"/>
    </h:column>
</h:dataTable>

如何在单选按钮和复选框之间切换,具体取决于问题类型?

1 个答案:

答案 0 :(得分:0)

根据问题类型,只需使用rendered属性在输入类型之间切换。你问题中的代码(变量名称)不是自我记录的,所以我也对它进行了更改,以便它变得更加自我记录,并且每个属性代表的内容都很明显。

<h:dataTable value="#{bean.questions}" var="question">
    <h:column>
        <h:selectOneRadio value="#{question.selectedAnswer}" rendered="#{question.type == 'SINGLE_CHOICE'}">
            <f:selectItems value="#{question.availableAnswers}" />
        </h:selectOneRadio>
        <h:selectManyCheckbox value="#{question.selectedAnswers}" rendered="#{question.type == 'MULTIPLE_CHOICE'}">
            <f:selectItems value="#{question.availableAnswers}" />
        </h:selectManyCheckbox>
    </h:column>
</h:dataTable>

#{question.type}应代表具有上述值的enum