IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Problème avec selectOneMenu


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Problème avec selectOneMenu
    salut tout le monde j'utilise JSF 2 et j'ai un problème avec mon selectOneMenu
    le but c'est d'afficher une liste de produits et de choisir un seul et de l’envoyé via un commande bouton . la récupération des donné ce fait exactement comme je veux mais quand je sélectionne un produit et je Click sur bouton valider rien ne se passe voila mon code : xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <h:outputLabel>Produit </h:outputLabel>
    							<h:selectOneMenu effect="fade" value="#{produitMB.selectedProduit}" converter="#{ProduitConvert}">
    								<f:selectItem itemLabel="Produits" itemValue="" />
    								<f:selectItems value="#{produitMB.produits}" var="produit" itemLabel="#{produit.designation}" itemValue="#{produit}"/>
    							</h:selectOneMenu>
    <p:commandButton actionListener="#{produitMB.save}"
    				value="valider" update="dataTable"/>
    Managed bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class ProduitMB extends AbstractMB{
            private List<Produit> produits;
    	private Section selectedProduit;
    public CourrierMB(){
    //apartir de la db
    produits = facade.getAllProduit()
    }
    public void save(ActionEvent actionEvent) {
    		//traitement
                    //.............
    		FacesContext context = FacesContext.getCurrentInstance();  
     
    		context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
    						"Ajout effectué avec succée","!!!"));
    }
    }
    mon convert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    @FacesConverter(forClass = com.package.Produit.class)
    public class ProduitConvert implements Converter{
     
     
    	@Override
    	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
    		ProduitDao ProduitDao = new ProduitDao();
    		int idProduit;
     
    		try {
    			idProduit= Integer.parseInt(arg2);
    		} catch (NumberFormatException exception) {
    			throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Type the label of a produit and select it (or use the dropdow)", "Type the name of a idProduit and select it (or use the dropdow)"));
    		}
     
    		return produitDao.find(idProduit);
    	}
     
    	@Override
    	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
    		if (arg2 == null) {
    			return "";
    		}
    		Produit produit = (Produit) arg2;
    		return String.valueOf(produit.getIdProduit());
    	}
     
     
     
    }

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    pour afficher un selectOneMenu dans une page il faut tout d'abord commencer à développer une méthode dans votre managedbean portant @postConstruct de tel façon lorsque vous exécuter la page cette méthode va être exécuter.dans cette méthode il faut déclarer une liste qui prend toutes les valeurs de votre DAO (les listes produits)ensuite déclarer un iterator qui fait le parcours de cette liste si elle n'est pas vide extraire les information dans un objet par exemple produit et le mettre au niveau d'un collection MAP.

  3. #3
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    tout d'abord assures toi que t'es dans un ensuite desactive l'effet ajax sur ton command button soi tu mets un ou alors tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton actionListener="#{produitMB.save}" value="valider" ajax="false"/>
    cela va permettre de recharger la page et tu pourras voir ce qui ne marches pas.

    Une autre idee je ne sais ce que c'est produitDao mais si c'est un EJB.
    Alors tu devrais savoir que tu ne peux injecter dans un @FacesConverter du coup getAstring va marcher lors du rendu de l'interface mais pas pour valider donc le getAsObject.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    desole Mr mais j'ai pas compris votre solution si vous avez un bout de code qui pourra m'exlercire un peut
    et surtout la methode que tu ma dis d'ajouter et pour information j'utilise hibernet implémentation JPA encors merci infiniment

  5. #5
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    voici un converter generic très interressant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @ManagedBean(name="genericConverter")
    @ViewScoped
    //@FacesConverter(value="genericConverter")
    public class GenericSecuredConverter implements Converter, Serializable {
     
        private Map <UUID, Object> temporaryStore = new HashMap <UUID, Object> ();
     
        @Override
        public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
            return temporaryStore.get(UUID.fromString(value));
        }
     
        @Override
        public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
            UUID id = UUID.randomUUID();
            temporaryStore.put(id, value);
            return id.toString();
     
        }
    exemple d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p:selectOneMenu value="#{userController.user.roleid}" id ="role" required="true" requiredMessage="#{msg['user.msg.role']}" style=" width: 115px;" 
                                                     converter="#{genericConverter}">
                                        <f:selectItems value="#{userController.roleDao.allRole}" var="role" itemLabel="#{role.code}" itemValue="#{role}" />
                                    </p:selectOneMenu>

Discussions similaires

  1. Problème avec SelectOneMenu
    Par ahmedpa dans le forum JSF
    Réponses: 2
    Dernier message: 13/12/2012, 16h58
  2. Problèmes avec selectOneMenu
    Par azassma dans le forum JSF
    Réponses: 4
    Dernier message: 14/07/2012, 23h02
  3. Problème avec selectOneMenu et valueChangeListener
    Par sylviefrfr dans le forum JSF
    Réponses: 0
    Dernier message: 10/06/2010, 12h56
  4. problème avec selectOneMenu
    Par yazen dans le forum JSF
    Réponses: 4
    Dernier message: 27/08/2008, 16h04
  5. problème avec selectOneMenu
    Par anisj1m dans le forum JSF
    Réponses: 9
    Dernier message: 12/06/2008, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo