2014-09-13 52 views
0

我是新來的primefaces,我有一個問題來保存我的primefaces SelectManyCheckbox值到數據庫。我正在使用休眠和MySQL。示例代碼被給予如下如何插入PrimeFaces p:selectManycheckbox值到數據庫

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

我無法找出如何我將設置方法的選擇和不選擇複選框值

+0

如果我沒有錯,sel e'p:selectManyCheckbox'保存字符串集合(List,ArrayList ...等)上的選擇值。你只需要將每個元素保存在Collection中。 – Cold 2014-09-15 11:24:50

+0

是的,你是正確的 – 2014-09-15 11:26:15

+0

我將作爲答案發布好,關閉這個問題,可以嗎? – Cold 2014-09-15 11:27:22

回答

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> 

然後你就可以在你的saveExaminationDetails()

+0

我的問題是我需要一個複選框。如果檢查其應該顯示爲真否則爲 – 2014-09-13 12:04:58

+0

有什麼問題?你有examFormBean.selectedExaminationParts和examinationFormBean.examinationParts列表。所以你可以返回一些其他對象不僅考試部分模型,如果你想,這需要實現轉換器與getAsObject和getAsString方法http://stackoverflow.com/questions/19883771/how-to-use-selectmanycheckbox-with-two -arraylist-primefaces。 – 2014-09-13 12:45:11

0

p:selectManyCheckbox選擇值使用selectedExaminationParts上託管bean是一個招標StringCollectionListArrayList ...等)。您只需要保存Collection上存在的每個String即可。

我會給你展示如何做到這一點的例子:

例子:

... 
@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 
    } 
} 
...