我使用的是JSF 2.2。我正在努力建立一个考试系统。有些问题只有一个正确答案,另一些问题有多个正确答案。根据这个,我的视图应该显示单选按钮或复选框。我在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>
如何根据问题类型在单选按钮和复选框之间进行切换?
只需使用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
。