2010-06-05 12 views
1

Salut J'ai la follonwing selectOneMenuSelectOneMenu + CommmandButton

<h:selectOneMenu value="#{modelsController.selected.idBrands}"> 
    <f:selectItems value="{brandsController.itemsAvailableSelectOne}" /> 
</h:selectOneMenu> <br/> 

qui est rempli avec toutes les marques disponibles dans la fève.

Et je voudrais créer un bouton qui récupère la marque sélectionnée dans le selectOneMenu mentionné et affiche les enregistrements dans le bean filtré par la sélection (ce que je veux dire, est que si l'utilisateur sélectionné, unBrand dans selectOneMenu tous les modèles de Abrand sera montré dans un datatable.

C'est un simple CRUD JSF 2.0 avec EcpliseLink.

quelqu'un pourrait-il me diriger dans la bonne direction? Merci beaucoup

Répondre

1

Ajouter un <h:form> et <h:commandButton> :

<h:form> 
    <h:selectOneMenu value="#{modelsController.selected.idBrands}"> 
     <f:selectItems value="{brandsController.itemsAvailableSelectOne}" /> 
    </h:selectOneMenu> 
    <br /> 
    <h:commandButton value="submit" action="#{modelsController.submit}" /> 
</h:form> 

Et de définir une méthode d'action qui remplit la liste datatable en fonction de l'élément sélectionné.

public String submit() { 
    items = itemDAO.load(selected.getIdBrands()); 
} 

Et l'afficher dans le <h:dataTable> de la manière habituelle.

<h:dataTable value="#{modelsController.items}" ... > 
+0

Merci, utilisez-vous Hibernates itemDAO? Parce que je ne peux pas reechload. –

+0

Non, ce n'est qu'une simple abstraction auto-explicative d'une classe DAO. Faites ce que vous voulez de DAO tant qu'il renvoie le 'List ' désiré. – BalusC

+0

OK Je thin'k je l'ai Liste publique findByBrands (Marques id_brand) { CriteriaQuery cq = (CriteriaQuery) em.createNamedQuery ("SELECT m de modèles OU m.id_brand: id_brand); cq.select (cq.from (Modelos.class)); em.createQuery retour (cq) .getResultList();} en nede pour obtenir l'argument dans la requête SQL, est-il possible –