Question

Je souhaite des éléments paramétrés d'une liste à l'selectonemenu dans ICEfaces. Mais quand je fais la même chose que je reçois l'erreur suivante: java.lang.ClassCastException: ne peut pas être jeté à javax.faces.model.SelectItem

est une classe d'entité.

S'il vous plaît Aide.

Était-ce utile?

La solution

La façon normale de créer et de remplir les éléments de selectOneMenu serait le suivant:

private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter

public Bean() {
    selectItems = new ArrayList<SelectItem>();
    for (Entity entity : getYourEntities()) {
        selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
    }
}

Avec ce qui suit dans la vue (vous pouvez facilement <h: subsitite avec <ice:):

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

Au lieu d'une valeur de String, vous pouvez également utiliser JSF depuis une Number (Integer, Long, etc.) a intégré des convertisseurs pour cela. Mais si vous voulez utiliser des objets entiers comme valeur de l'élément, vous devez créer un Converter. Ceci est décrit en détail dans cet article .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top