我正在使用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>
如何在单选按钮和复选框之间切换,具体取决于问题类型?
答案 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
。