Jsf 从SelectCheckBox菜单中检索类值
我有一个函数,我想在bean中获取所选的值。但是我得到的价值 当我从菜单中选择一个项目时,它是一个字符串,表示分类bean中的类型字段。 我只想在从表中选择一个项时,得到bean中的整个CategorizationBean结构 这是xhtml页面中的代码片段:Jsf 从SelectCheckBox菜单中检索类值,jsf,primefaces,Jsf,Primefaces,我有一个函数,我想在bean中获取所选的值。但是我得到的价值 当我从菜单中选择一个项目时,它是一个字符串,表示分类bean中的类型字段。 我只想在从表中选择一个项时,得到bean中的整个CategorizationBean结构 这是xhtml页面中的代码片段: <p:selectCheckboxMenu label="Categorization" value="#alertMB.selectedCategories}"
<p:selectCheckboxMenu label="Categorization"
value="#alertMB.selectedCategories}"
converter="com.converter.CategoryConverter">
<f:selectItems value="#{alertMB.categoryDomainEntry}"
var="category"
itemLabel="#{category.type}"
itemValue="#{category}"/>
</p:selectCheckboxMenu>
来自bean的代码片段:
public List<CategorizationBean> getSelectedCategories() {
return selectedCategories;
}
public void setSelectedCategories(List<CategorizationBean> selectedCategories) {
this.selectedCategories = selectedCategories;
}
public class CategorizationBean implements Serializable{
private String type;
private long id;
我认为您在使用bean列表时错过了,我使用了这个示例,它可以工作:
<p:selectCheckboxMenu id="slctRdBtn"
value="#{yourBean.compLovDtgrid}"
converter="compLovDtgridConverter">
<f:selectItems
value="#{yourBean.listCompLovDtgrid}"
var="rdbtn" itemLabel="#{rdbtn.vjlrLibelleRep}"
itemValue="#{rdbtn}" />
</p:selectCheckboxMenu>
}
对于列表,我使用:
public List<CompLovDtgrid> getListCompLovDtgrid()
{
return listCompLovDtgrid;
}
public void setListCompLovDtgrid(List<CompLovDtgrid> listCompLovDtgrid) {
this.listCompLovDtgrid = listCompLovDtgrid;
}
您的转换器看起来像com.converter.CategoryConverter吗?它是否充分接受并返回正确的类型?在这个表达式value=alertMB.selectedCategories}中,符号后面缺少一个{的无效语法。我避免将其视为一个输入错误。它确实是一个输入错误。转换器如下所示:覆盖公共对象getAsObjectFacesContext上下文,UIComponent组件,字符串值{//code}重写公共字符串getAsStringFacesContext上下文、UIComponent、对象值{return CategorizationBeanvalue.getType;问题是,如果我将getAsObject函数值参数从String更改为CategorizationBean,我将无法再重写它。@AlexStratulat请将您的转换器包括在问题中,那么您的转换器到底出了什么问题?您是否有一些错误或无法理解你不知道为什么它不起作用
public List<CompLovDtgrid> getListCompLovDtgrid()
{
return listCompLovDtgrid;
}
public void setListCompLovDtgrid(List<CompLovDtgrid> listCompLovDtgrid) {
this.listCompLovDtgrid = listCompLovDtgrid;
}