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

Ext JS / Sencha Discussion :

autocomplete : accès au service


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Par défaut autocomplete : accès au service
    salut,


    je travail avec extjs 4 ,

    je veux utiliser la notion d'autocomplete dans mon exemple

    c'est à dire lorsque je suis entrain de taper du caractère dans le composant extjs une requête sera envoyer en mode remote au service pour récupérer la liste des employées selon le texte saisi( selon le critère de recherche)

    j'ai essayer avec ce code :

    dans la page emplyeesModel.js :

    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
    Ext.define('GenericComboModel', {
            extend: 'Ext.data.Model', 
            fields: [
                 {name: 'label', type: 'string'},
                 {name: 'value',  type: 'string'}
            ]
     });
     
     var employeesStore= Ext.create('Ext.data.Store', {
         model: 'GenericComboModel',
         proxy: {
             type: 'ajax',
             url: 'employeesService',
             reader: {
                 type: 'json',
                 root: 'users'
             }
         }
     });

    dans la page emplyeesView.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
      xtype: 'combobox',
      store: employeesStore,
      displayField: 'label',
      valueField: 'value',
      queryMode: 'remote',
      fieldLabel: 'test',
      editable: false,
      id: 'employees_IdCombo',
      hideTrigger:true
      queryParam: 'searchStr' 
     
    }

    dans la service employeesService.java


    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
    public class employeesService{
     
     public List<employees> getEmployeesListByLibelle(String libelle) {
                // TODO Auto-generated method stub
     
                Query query = getSession().createQuery("FROM employees emp where emp.libelle=:libelle ");  
    query.setParameter("libelle", libelle);
                List result = query.list();
                if(result.size()!=0 && result !=null)
                    return result;
                else 
                    return null;
            }
     
    }

    mais lors de test de ce code j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GET http://localhost:8080/employeesService.getEmployeesListByLibelle?_dc=1376728740208&searchStr=testSearch&page=1&start=0&limit=25&filter=%5B%7B%22property%22%3A%22label%22%7D%5D 404 (Introuvable) ext-all-rtl.js:21
    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Par défaut
    je pense que la class service doit avoir le structure du servlet,

    mais je ne sais pas exactement d'où vient le problème

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    c'est un problème à poster dans la section java.
    ton service doit être une servlet et surtout implémenter la methode goGet
    qui doit mettre un paquet JSON dans la réponse HTTP

    de plus ce paquet doit avoir la structure JSON qu'attends ExtJS

    1) à la place de ta servlet met un simple fichier employes.json
    écrit dedans un exemple de JSON et vérifie que ExtJS sais l'interpréter. lorsque tu auras la bonne structure (les exemples et la doc sencha son là pour ça) tu poura spasser à l'étape 2)

    2) écris une servlet qui doit produire un JSON identique à ce que tu as obtenu à l'étape 1) Je conseille d'utiliser un librairie genre JSON-SMART ou Jackson.
    lorsque ton objet JSON contient bien les données structurée correctement il te reste à affecter à response le résultat de toJsonString() de ton objet JSON.
    je conseille aussi d'affecter le contentType avec "application/json" et le chaset en UTF-8.

    A+JYT

Discussions similaires

  1. problème d'accès au service web
    Par Jean-Claude Dusse dans le forum Services Web
    Réponses: 1
    Dernier message: 09/09/2008, 09h37
  2. Erreur accés à un service SOAP
    Par Shivan dans le forum Services Web
    Réponses: 7
    Dernier message: 12/08/2008, 19h04
  3. Réponses: 3
    Dernier message: 13/06/2008, 17h51
  4. [3.5] Acces web service http GET
    Par CUCARACHA dans le forum Services Web
    Réponses: 1
    Dernier message: 17/12/2007, 19h44
  5. Accès aux services de reporting à partir de IE
    Par aemag dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/09/2006, 16h07

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