0

我正在尝试使用 prime-faces 构建一个网页。我想实现一个测验页面。我的 bean 有问题 DTO 列表,其中包含答案 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:对于输入字符串:java.lang.Integer 的 java.lang.Integer.parseInt(Integer.java:492) 的 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 的“answer”。 parseInt(Integer.java:527) at javax.el.ListELResolver.coerce(ListELResolver.java:163) 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) 在 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) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) at javax.faces.component.UISelectItems.getValue(UISelectItems.java:129) at 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) 在 com.sun.faces.facelets.component.RepeatRenderer 的 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) 的 javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)。 com.sun.faces.facelets.component.UIRepeat 上的 encodeChildren(RepeatRenderer.java:104)。com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:1110) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) at javax.faces 的 process(UIRepeat.java:621) .component.UIComponent.encodeAll(UIComponent.java:1859) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456 ) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 在 com.sun.faces.lifecycle 的 com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)。 Phase.doPhase(Phase.java:101) ... 61 更多encodeAll(UIComponent.java:1856) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at 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 更多encodeAll(UIComponent.java:1856) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at 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 更多456) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 在 com.sun.faces.lifecycle .Phase.doPhase(Phase.java:101) ... 61 更多456) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 在 com.sun.faces.lifecycle .Phase.doPhase(Phase.java:101) ... 61 更多

4

0 回答 0