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

Servlets/JSP Java Discussion :

Comment initialiser une liste déroulante d'un formulaire


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut Comment initialiser une liste déroulante d'un formulaire
    Bonjour,

    Je suis en train de développez un site d'annonce dans une architecture MVC.
    J'utilise les jsp ,les servlets et JBoss comme serveur.

    Je veux créer un formulaire dans une page jsp qui permet d'insérer des annonces dans ma BDD
    Dans ce formulaire, je veux mettre une liste déroule contenant les différentes catégories d'annonces (la liste des catégories est stockée en BDD, j'ai déja développé un stateless avec une méthode qui permet de rechercher toutes les catégories)

    J'aimerais accéder à cette jsp avec un lien direct sans passer par une servlet.
    Est-ce possible d'initialiser cette liste sans passer par une servlet? Ou dois-je obligatoirement passer par une servlet?

    Je sais que je peux aussi appeler la méthode de recherche du stateless dans la page jsp mais ça ne plait pas beaucoup car ça me parait anti-MVC.

    Merci de me lire

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Citation Envoyé par Blu3b3rry Voir le message
    J'aimerais accéder à cette jsp avec un lien direct sans passer par une servlet.
    Est-ce possible d'initialiser cette liste sans passer par une servlet? Ou dois-je obligatoirement passer par une servlet?
    Je ne comprend pas vraiment la question. Si les données de ta liste est stockée en BDD, tu dois la charger quelque part en Java, comme dans un cache par exemple. Ce mécanisme peut être indépendant de ta couche de présentation (mais la liste devra être accessible depuis la présentation).

    Citation Envoyé par Blu3b3rry Voir le message
    Je sais que je peux aussi appeler la méthode de recherche du stateless dans la page jsp mais ça ne plait pas beaucoup car ça me parait anti-MVC.
    Je confirme, en MVC la JSP est une simple vue qui interroge le modèle pour y chercher ses données. Le contrôleur devrait avoir fait le travail de chargement des données au préalable.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    Bizarre, il y a des messages qui ont disparu

    Sinon, mon problème est résolu

    J'ai donc créé une servlet qui est exécuté au démarrage du serveur. Il faut modifié le fichier web.xml pour qu'elle soit exécutée

    extrait du web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <servlet>
    		<servlet-name>ChargerCategoriesServlet</servlet-name>
    		<servlet-class>servlet.ChargerCategoriesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    </servlet>
    Dans ma servlet, je charge dans le scope application ma list comme ca :
    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
     
    public class ChargerCategoriesServlet extends HttpServlet{
     
    	public void init(ServletConfig config) throws ServletException{
    		super.init(config);
     
    		List<Categorie> categories;
     
    		try{
    			final Hashtable<String, String> env = new Hashtable<String, String>();
    			env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    			env.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
    			env.put(Context.PROVIDER_URL, "localhost:1099");
    			Context ctx = new InitialContext(env);
     
    			CategorieLocal categorieLocal = (CategorieLocal)ctx.lookup("annonce/CategorieBean/local");
    			categories = categorieLocal.chercheCategories();
    			config.getServletContext().setAttribute("categories", categories);
     
    			}catch(Exception e){
    				e.printStackTrace();
     
    		}
    	}
    }
    Ca aidera peut être certain

    Merci

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Le catch(Exception) pourrait remonter une ServletException, indiquant que l'application n'est pas correctement initialisée, et par conséquent qu'elle ne devienne pas active.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2012, 18h12
  2. Comment ré-initialiser une liste déroulante ?
    Par jeje22 dans le forum Access
    Réponses: 5
    Dernier message: 03/06/2009, 21h32
  3. Comment initialiser une liste déroulante ?
    Par sergoi dans le forum Struts 1
    Réponses: 5
    Dernier message: 12/07/2007, 11h35
  4. Réponses: 1
    Dernier message: 04/07/2006, 23h11
  5. Comment initialiser une liste de composants avec une boucle ?
    Par EricSid dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/04/2005, 18h46

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