0

我正在使用 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>

如何根据问题类型在单选按钮和复选框之间进行切换?

4

1 回答 1

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具有上述值的一个。

于 2013-02-20T12:31:27.967 回答