如何使用JSF将p:dataTable中的多个p:rating值保存到数据库中?

时间:2015-10-29 11:12:40

标签: jsf jsf-2 primefaces datatable

我正在使用JSF 2.2和primefaces。我有一个数据库表,其中一个STRING类型的字段由多个问题组成,使用comma.i组合检索字段并将整个字符串转换为arraylist并存储为myceanController中的abc。列表显示使用dataTable.i想要将单个abc列表项及其对应的评级值保存在数据库新表中。用于显示的jsf代码如下所示。

<p:dataTable var="list1" value="#{myBeanController.abc}">                      

    <p:column width="60%" >
                  <h:outputText id="saqs" value="#{list1}" />                
            </p:column>

             <p:column width="60%"  >
                  <p:rating stars="4" cancel="false" value="#{myBeanController.rating}"/>
             </p:column>
     </p:dataTable>

1 个答案:

答案 0 :(得分:0)

有一些方法,但我认为最简单的方法是不使用List<String>作为abc属性,而是使用允许同时保存两者的类列表:字符串和评级。

我的意思是:

public class Question{
  private String question = null;
  private Integer rating = null;

  //Other stuff, accessors/mutator, and so on
}

然后,在后面的bean中,您可以在List<Question>中更改问题的字符串,并将渲染更改为:

<p:dataTable var="list1" value="#{myBeanController.abc}">                      

    <p:column width="60%" >
        <h:outputText id="saqs" value="#{list1.question}" />                
    </p:column>

    <p:column width="60%"  >
         <p:rating stars="4" cancel="false" value="#{list1.rating}"/>
    </p:column>
 </p:dataTable>

希望它有所帮助!