<h:selectBooleanCheckbox value="#{cc.attrs.ItemSource.selectedByUser}" />
绑定有效。 对于answertype我不能使用
目前我正在使用
<input type="radio" name="answer#{cc.attrs.QuestionId}" value="#{cc.attrs.ItemSource.selectedByUser}" />
但是当用户选择它时,绑定似乎不起作用。发布后,相应的selectedByUser仍为false。
我有什么想法可以解决这个问题吗?
是否可以在bean中检索表单数据并将其分配给模型?
[编辑] 我的问题和答案组件看起来像这样:
问题:
<cc:interface>
<cc:attribute name="ItemSource" type="code.elephant.domainmodel.Question" required="true" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<c:forEach items="${cc.attrs.ItemSource.answers}" var="item">
<li>
<local:Answer ItemSource="#{item}" AnswerType="#{cc.attrs.ItemSource.answerType}"
GapString="#{cc.attrs.ItemSource.gapString}"
QuestionId="#{cc.attrs.ItemSource.questionId}"/>
</li>
</c:forEach>
答案:
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="AnswerType" type="code.elephant.domainmodel.AnswerType" required="true" />
<cc:attribute name="ItemSource" type="code.elephant.domainmodel.Answer" required="true" />
<cc:attribute name="QuestionId" type="java.lang.Long" required="true" />
<cc:attribute name="GapString" type="java.lang.String" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<c:if test="#{cc.attrs.AnswerType == 'MultipleChoice'}">
<h:selectBooleanCheckbox value="#{cc.attrs.ItemSource.selectedByUser}" />
<h:outputText value="#{cc.attrs.ItemSource.text}" />
</c:if>
<c:if test="#{cc.attrs.AnswerType == 'SingleChoice'}">
<input type="radio" name="answer#{cc.attrs.QuestionId}" value="#{cc.attrs.ItemSource.selectedByUser}" />#{cc.attrs.ItemSource.text}
</c:if>
</cc:implementation>