如何将PrimeFaces p:selectManycheckbox值插入数据库

时间:2014-09-13 06:43:44

标签: jsf jsf-2 primefaces

我是primefaces的新手,我有一个问题是将我的primefaces SelectManyCheckbox值保存到数据库。我正在使用hibernate和mysql。示例代码如下所示

我的xhtml网页代码为:

   <h:outputText value="#{msg['elicense.examinationform.personal.classofcertificates']}"/> 
        <p:selectManyCheckbox id="grid" value="#{examinationFormBean.selectedClass}" layout="grid" columns="1">
            <f:selectItems value="#{examinationFormBean.examinationPart}"var="className" itemLabel="#{className.name}" itemValue="#{className}" />
      </p:selectManyCheckbox>

我的bean是:

  private String[] selectedClass;
  private List<CertificateClass> examinationPart=new ArrayList<CertificateClass>();
  getter()
  setter()

我要保存我的复选框的方法是:

        private void saveExaminationDetails()
          {
             examDetails.setElementaryPrinciples();  //bolean field
             examDetails.setLightinig()
             //no of setter
           }

我无法找到如何在方法

上设置选中和未选中的复选框值

2 个答案:

答案 0 :(得分:0)

查看primefaces展示:http://primefaces-rocks.appspot.com/ui/selectManyCheckbox.jsf

来自examinationFormBean.examinationPart的选定值应设置在p:selectManyCheckbox属性value中,然后您可以在bean方法中使用此选定列表。 你的例子应该是:

    <p:selectManyCheckbox id="grid" value="#{examinationFormBean.selectedExaminationParts}" layout="grid" columns="1">
                <f:selectItems value="#{examinationFormBean.examinationParts}" var="className" itemLabel="#{className.name}" itemValue="#{className}" /> 
</p:selectManyCheckbox>

然后您可以在selectedExaminationParts

中使用saveExaminationDetails()

答案 1 :(得分:0)

p:selectManyCheckbox选择值正在托管bean上绑定String CollectionListArrayList ...等)。您只需要保存String上存在的每个Collection

我将举例说明如何做到这一点:

示例:

...
@Named(value = "myBean")
@SessionScoped
public class InscricaoBean implements Serializable {
...
private List<String> selectedElemnts = new ArrayList();

//selectedElements get and set
...

在JSF上你有类似的东西:

...
<h:outputText value="#{msg['elicense.examinationform.personal.classofcertificates']}"/> 
        <p:selectManyCheckbox id="grid" value="#{examinationFormBean.selectedElemnts}"...>
            <f:selectItems value="#{examinationFormBean.examinationPart}"var="className"   
            itemLabel="#{className.name}" itemValue="#{className}" />
      </p:selectManyCheckbox>
...

保存方法:

...
private void saveExaminationDetails()
{
   for (String nameAux: selectedElemnts )
   {
       //you save the data here
   }
}
...