使用selectManyCheckBox时出现以下问题:
campaignInformationForm.campaignInformation.googleAnalytics(这是布尔对象)
java.lang.Boolean无法强制转换为 javax.faces.model.SelectItem
我的代码是:
<ice:selectManyCheckbox id="options" layout="pageDirection" >
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleMerchantAccount}" itemLabel="#{msgs['page.information.GoogleAccount']}" />
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleMap}" itemLabel="#{msgs['page.information.GoogleMap']}" />
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleAnalytics}" itemLabel="#{msgs['page.information.GoogleAnalytics']}" />
</ice:selectManyCheckbox>
有什么想法吗?
修改
这是我的DTO
public class CampaignInformation implements Serializable{
.....BOILERPLAIT CODE ...
private boolean googleMerchantAccount;
private boolean googleMap;
private boolean googleAnalytics;
.....GETTER/SETTER ...
我想要一个可以根据它们的值使用那些布尔选择/取消选择的复选框,可以这样做吗?
答案 0 :(得分:3)
此处示例中的f:selectItem标记是正确的。我几乎可以肯定你在一个selectItem中使用了“value”而不是“itemValue”(也许你删除了一个干净的例子?)。
此外,选择存储在哪里?我想你应该在冰中有一个“值”属性(实际上,这次):selectManyCheckbox,就像这样:
<ice:selectManyCheckbox id="options" layout="pageDirection" value="#{campaignInformationForm.selectedItems}">
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleMerchantAccount}" itemLabel="#{msgs['page.information.GoogleAccount']}" />
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleMap}" itemLabel="#{msgs['page.information.GoogleMap']}" />
<f:selectItem itemValue="#{campaignInformationForm.campaignInformation.googleAnalytics}" itemLabel="#{msgs['page.information.GoogleAnalytics']}" />
</ice:selectManyCheckbox>
(selectedItems是所选项目的列表或数组)