JSF 2.0中的嵌套数据表



我试图获取问题和相关的答案。我能够很好地得到问题,但嵌套的数据表甚至不能识别每个答案所具有的属性,IDE也指出了这一点。也许这不是解决问题的正确方法。如何遍历与每个问题相关的答案?

 <h:dataTable value="#{questionBacking.recentlyAskedQuestions}" var="questions"
                 rendered="#{questionBacking.recentlyAskedQuestions.size() > 0}"
                 border="1">
                <h:column>
                   <h:outputText  value="#{questions.questionTitle}" />
                   <br/>
                   <h:outputText  value="#{questions.questionBody}" />
               </h:column>
              <h:dataTable value="#{questions.answers}" var="answers">
              <tr>
                  <h:outputText  value="#{answers.answer}" />
              </tr>

              </h:dataTable>
  </h:dataTable>

您需要在<h:column>中放置列。

<h:dataTable value="#{questionBacking.recentlyAskedQuestions}" var="question" rendered="#{not empty questionBacking.recentlyAskedQuestions}">
    <h:column>
        <h:outputText  value="#{question.questionTitle}" />
        <br/>
        <h:outputText  value="#{question.questionBody}" />
    </h:column>
    <h:column>
        <h:dataTable value="#{question.answers}" var="answer">
            <h:column>
                <h:outputText  value="#{answer.answer}" />
            </h:column>
        </h:dataTable>
    </h:column>
</h:dataTable>

(请注意,我将renderedvar属性更改为更自我文档化,您可能希望将questionTitle, questionBodyanswer分别重命名为title, bodybody,以便您不要重复含义)

您也可以使用PrimeFaces完成BalusC回答中提到的相同操作。只需将<h:dataTable>替换为<p:dataTable>,列标签也是如此。您可以使用PrimeFaces创建嵌套的数据表。我推荐人们使用PrimeFaces,因为它减少了人们花在编写/修改css定义上的时间。

相关内容

  • 没有找到相关文章

最新更新