SelectManyCheckBox java.lang.Boolean нельзя преобразовать в javax.faces.model.SelectItem - PullRequest
0 голосов
/ 22 марта 2011

У меня возникает следующая проблема при использовании selectManyCheckBox:

campaignInformationForm.campaignInformation.googleAnalytics (это логические объекты)

java.lang. Не может быть приведен 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>

Есть идеи?

Edit:

Это мой DTO

public class CampaignInformation implements Serializable{
.....BOILERPLAIT CODE    ...
        private boolean googleMerchantAccount;
    private boolean googleMap;
    private boolean googleAnalytics;
.....GETTER/SETTER   ...

И мне нужен флажок, который может работать с этими логическими параметрами выбора / отмены выбора в соответствии с их значением, это можно сделать ??

1 Ответ

3 голосов
/ 23 марта 2011

Теги f: selectItem в вашем примере верны. Я почти уверен, что вы использовали «значение» вместо «itemValue» в одном selectItem (возможно, вы удалили один для чистого примера?).

Кроме того, где будет храниться выбор? Я думаю, у вас должно быть свойство "value" (действительно, на этот раз) на льду: 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 является списком или массивом выбранных элементов)

...