2015-11-18 1 views
1
<h:selectOneMenu id="reportType" style="width:175px" value="#{pageDemoSearchBean.status}"> 
    <f:selectItems value="#{pageDemoSearchBean.vehicleStatus}" /> 
</h:selectOneMenu> 

J'utilise JSF 1.2java.lang.String ne peut pas être jeté à javax.faces.model.SelectItem avec s: selectItems

Ces lignes de code jette un ClassCastException

java. lang.String ne peut pas être converti en javax.faces.model.SelectItem

Pourvu que le remplacement de la « valeur » par « ItemValue » en F: balise selectItems est de donner une autre exception qui indique que

ItemValue est incorrect pour selectItems selon TLD

+0

Lorsque vous utilisez 1.x JSF, chercher des réponses 1.x JSF/exemples/ressources, pas de réponses JSF 2.x/exemples/ressources. – BalusC

+0

s'il vous plaît nous montrer le code où vous importez la lib dans la page jsp –

+0

S'il vous plaît ignorer ci-dessus nosense commentaire de Si mo. Il n'y a aucun moyen d'importer une JSP ici. – BalusC

Répondre

1

Dans 1.x JSF, il est impossible de fournir un List<T> comme <f:selectItems value>. Il prend uniquement en charge List<javax.faces.model.SelectItem>.

Voici un exemple de coup d'envoi du bon usage, copypasted de notre   tag wiki page (qui est écrit avec JSF 2.x à l'esprit, afin de prendre en compte que quelques exemples ne fonctionnent pas pour le 1.x jurassique JSF):

<h:form> 
    <h:selectOneMenu value="#{bean.selectedItem}"> 
     <f:selectItem itemValue="#{null}" itemLabel="-- select one --" /> 
     <f:selectItems value="#{bean.availableItems}" /> 
    </h:selectOneMenu> 
    <h:commandButton value="Submit" action="#{bean.submit}" /> 
</h:form> 
private String selectedItem; // +getter +setter 
private List<SelectItem> availableItems; // +getter (no setter necessary) 

@PostConstruct 
public void init() { 
    availableItems = new ArrayList<SelectItem>(); 
    availableItems.add(new SelectItem("foo", "Foo label")); 
    availableItems.add(new SelectItem("bar", "Bar label")); 
    availableItems.add(new SelectItem("baz", "Baz label")); 
}