从复杂对象列表

时间:2016-01-09 18:53:07

标签: jsf jsf-2 selectoneradio

我正在尝试使用prime-faces构建一个网页。我想实现一个测验页面。我的bean有问题DTO列表,其中包含Answer DTO列表,我想用单选按钮显示每个问题的答案,因为用户只能选择一个答案而一个问题最多只能有一个正确的答案。我总共有4个问题。我写了以下代码

<h:selectOneRadio id="parkingOptions" value="#{theBean.userAnswer}">
                                <f:selectItems value="#{quizQuestionDto.quizAnswerList.answer}"/>
                            </h:selectOneRadio>

我的bean有一个名为getUserAnswer和setUserAnswer的方法来存储接受String的用户选择的答案。我很困惑它是否应该接受字符串或字符串列表,因为我有超过1个问题要问。 我得到了一个例外

  

java.lang.NumberFormatException:对于输入字符串:“answer”at   java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)     在java.lang.Integer.parseInt(Integer.java:492)at   java.lang.Integer.parseInt(Integer.java:527)at   javax.el.ListELResolver.coerce(ListELResolver.java:163)at at   javax.el.ListELResolver.getValue(ListELResolver.java:51)at   com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)     在   com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)     在org.apache.el.parser.AstValue.getValue(AstValue.java:183)at   org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)     在   com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)     在   javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)     在   javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)     在   javax.faces.component.UISelectItems.getValue(UISelectItems.java:129)     在   com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:208)     在   com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135)     在   com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:133)     在   javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)     在javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)     在   com.sun.faces.facelets.component.RepeatRenderer.encodeChildren(RepeatRenderer.java:104)     在   com.sun.faces.facelets.component.UIRepeat.process(UIRepeat.java:621)     在   com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:1110)     在javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)     在javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)     在javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)     在   com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)     在   com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)     在   com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)     在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)... 61更多

0 个答案:

没有答案