我是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
}
我无法找到如何在方法
上设置选中和未选中的复选框值答案 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
Collection
(List
,ArrayList
...等)。您只需要保存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
}
}
...