【问题标题】:How to save multiple p:rating values from p:dataTable into database using JSF?如何使用 JSF 将 p:dataTable 中的多个 p:rating 值保存到数据库中?
【发布时间】:2016-01-29 12:02:28
【问题描述】:

我正在使用 JSF 2.2 和 primefaces。我有一个数据库表,其中一个 STRING 类型的字段由多个使用逗号组合的问题组成。我已检索该字段并将整个字符串转换为数组列表并在 myBeanController 中存储为 abc。列表使用 dataTable 显示。我想将单个 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>

【问题讨论】:

    标签: jsf jsf-2 primefaces datatable


    【解决方案1】:

    有一些方法,但我认为最简单的方法是不要将List&lt;String&gt; 用于abc 属性,而是使用允许您同时保存的类列表:字符串和评级。

    我的意思是:

    public class Question{
      private String question = null;
      private Integer rating = null;
    
      //Other stuff, accessors/mutator, and so on
    }
    

    然后,在您的后台 bean 中,您将问题的字符串更改为 List&lt;Question&gt;,并将您的渲染更改为:

    <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>
    

    希望对你有帮助!

    【讨论】:

    • 您好,感谢您的回复。但是我们已经将多个问题保存为一个字符串并保存在数据库中。为了显示它们,我们将它们转换为 Arraylist。只是帮助我们如何编写Backing bean来保存arraylist的项目及其各自的评级
    • 好吧,我不是告诉你必须改变你坚持问题的方式。我只建议您如何将问题的字符串转换为不同的结构以在视图层中表示它们。一旦你有了评级值,你就可以用它们做你想做的事。我没有说任何关于改变你表达问题的方式,所以我的回答与你已经存储的问题完全兼容。这是一个代表问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多