JSF绑定没有';t为<;输入类型=";电台;

JSF绑定没有';t为<;输入类型=";电台;,jsf,jsf-2.2,composite-component,Jsf,Jsf 2.2,Composite Component,我创建了一个jsf组件,它为“应答”模型显示适当的html控件。 回答类型有单选和多选两种。 对于回答类型,我可以使用乘法选择 <h:selectBooleanCheckbox value="#{cc.attrs.ItemSource.selectedByUser}" /> 装订工作。 对于回答类型,我不能使用 目前我正在使用 <input type="radio" name="answer#{cc.attrs.QuestionId}" value="#{cc.attr

我创建了一个jsf组件,它为“应答”模型显示适当的html控件。 回答类型有单选和多选两种。 对于回答类型,我可以使用乘法选择

<h:selectBooleanCheckbox value="#{cc.attrs.ItemSource.selectedByUser}" />

装订工作。 对于回答类型,我不能使用 目前我正在使用

 <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>
    
    
    #{cc.attrs.ItemSource.text}
    
    JSF不知道这个输入:
    它绝对不是JSF组件/输入。你为什么要这样使用它?为什么不使用jsf
    h:selectOneRadio
    ?如果您真的像您一样需要“html5友好”标记,您可以使用它:可能重复的我不能使用
    我想分配`