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 :

Spring et Javascript


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut Spring et Javascript
    Bonjour cher développeur!

    Voilà dans le cadre d'une application Web, utilisant Springframework, je suis confronté à un petit problème.

    A partir de mes Controller, je fournis un modèle (Map associant à une String, un objet). Dans mes pages JSP, la récupération de ces données est on ne peut plus simple ${cle_de_mon_objet}...
    Par contre, ca se complique avec les javascripts ... là je sais pas faire!

    Quelqu'un sait-il comment récupérer ces fameux objets dans un javascript (à moins que je ne m'y sois mal pris ${cle_de_mon_objet} ne fonctionne pas bien entendu) ?

    Ahhh!!! De plus, l'objet que j'essaie de récupérer ainsi est un tableau de String ... s'il y a des difficultés supplémentaires dont vous devriez me faire part à ce sujet...

    Mohicane

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Tu ne pourras pas récupérer des objets Java directement en Javascript parce que :

    1) ce sont deux languages différents (celà revient au même que de récupérer des objets Java dans du C),

    2) la java s'exécute sur le serveur, le javascript s'exécute sur le poste client.

    Il y a moyen de le faire par le biais du protocole RPC (JSon-RPC) mais là ça se complique beaucoup.

    Qu'est-ce que tu souhaites faire en javascript ?

    Pourrais-tu fournir un bout de ton code javascript ?

  3. #3
    Membre expérimenté Avatar de ze_corsaire
    Inscrit en
    Décembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2007
    Messages : 240
    Par défaut
    Il me semble me souvenir que tu peux écrire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <SCRIPT text="javascript">
    var maVariableJavascript = <% monCodeJSPpourRecupererMaVariableDeTypeString %>
    </SCRIPT>
    (à priori c ce qui est fait sur http://www.servletsuite.com/servlets/jscalltag.htm )


  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Effectivement, je ne l'avais pas pris comme celà.

    Tu ne pourras pas récupérer tes données Java en Javascript,
    par contre tu peux générer dynamiquement du code Javascript en Java comme le montre ze_corsaire.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut
    J'ai essayer des tonnes et des tonnes de manières de faire marcher mon bout de code... Je vous tiens au courant si cette démarche est bonne mais elle me semble en effet pas mal du tout!!! Comme quoi à force de ce focaliser sur un point particulier ...

    Mohicane

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut
    Bon je vous dois des explications donc voici la JSP qui me prend la tête depuis a peu de chose près 2 jours non-stop!

    Le but étant qu'au clic du bouton j'incrémente la valeur du niveau de ma carac mais que j'affiche non pas le niveau mais un qualificatif y correspondant (1 = Pas, 2 = Peu, Etc.)
    Du coup par le biasi de mon controller j'ai passé en modele:
    - La liste des Caracs possibles sous forme d'une java.util.List (associé aux nom "caracs")
    - Le tableau des qualificatifs (cf. plus haut)

    Et en plus j'ai une classe qui encapsule les donnés que je valide à chaque étape de mon formulaire. D'où le bind vers "persoEditeurContainer.niveau${carac.id}" (les propriétés de ma classe d'encapsulation s'appelant niveau1, niveau2, ...)

    Si jamais vous trouvez une solution plus propre, plus simple, bref mieux... N'hésitez pas. En tout cas comme ceci ca fonctionne ... Me reste plus qu'à récupérer le niveau de chaque carac, ce qui ne devrait pas être bien compliqué maintenant.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <%@ include file="/WEB-INF/vues/includes/header.jsp" %>
    <%@ taglib uri="/taglibs/spring.tld" prefix="spring" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
     
    <script type="text/javascript">
        var qualificatifs = new Array();
        <%
            String[] qualificatifs = (String[]) request.getAttribute("qualificatifs");
            for (int i = 0; i < qualificatifs.length; i++) {
        %>
        qualificatifs[<%= i %>] = '<%= qualificatifs[i] %>';
        <%
            }
        %>
            
        function setCaracLabel(carac, niveau) {
            var qualificatif;
            if (niveau >= qualificatifs.length) {
                qualificatif = qualificatifs[qualificatifs.length - 1] + "(" + niveau + ")";
            } else {
                qualificatif = qualificatifs[niveau - 1];
            }
     
            document.getElementById("label_" + carac).value = qualificatif + " " + carac;
        }
        
        function plus(carac) {
            var niveau = document.getElementById("niveau_" + carac).value;
            document.getElementById("niveau_" + carac).value = ++niveau;
            
            setCaracLabel(carac, niveau);
        }
        
        function moins(carac) {
            var niveau = document.getElementById("niveau_" + carac).value;
            if (niveau > 1) {
                document.getElementById("niveau_" + carac).value = --niveau;
                
                setCaracLabel(carac, niveau);
            }
        }
    </script>
     
    <form name="choix_caracs" method="POST">
     
        <c:forEach items="${caracs}" var="carac" varStatus="index">
            <spring:bind path="persoEditeurContainer.niveau${carac.id}"> 
                <c:choose>
                    <c:when test="${index.index%2 == 0}">
        <div class="editeur_carac_gauche">
                    </c:when>
                    <c:otherwise>
        <div>
                        </c:otherwise>
                    </c:choose>               
            <div class="panel_bouton_plus_moins">
                <button class="bouton_plus_moins" type="button" onclick="plus('${carac.nom}')">+</button>
                <button class="bouton_plus_moins" type="button" onclick="moins('${carac.nom}')">-</button>
            </div>
                    <c:choose>
                        <c:when test="${status.value >= fn:length(qualificatifs)}">
            <input class="carac_field" type="text" id="label_${carac.nom}" value="${qualificatifs[fn:length(qualificatifs) - 1]}(${status.value}) ${carac.nom}" readonly="readonly"/>
                        </c:when>
                        <c:otherwise>
            <input class="carac_field" type="text" id="label_${carac.nom}" value="${qualificatifs[status.value - 1]} ${carac.nom}" readonly="readonly"/>
                        </c:otherwise>
                    </c:choose>
            <input type="hidden" id="niveau_${carac.nom}" value="${status.value}"/>
        </div>
            </spring:bind>
        </c:forEach>
     
        <p style="clear: both;">
            <input type="hidden" name="_page" value="1"/>
            <input type="submit" name="_cancel" value="Début"/>
            <input type="submit" name="_target0" value="Précédent"/>
            <input type="submit" name="_target2" value="Suivant"/>
        </p>
     
    </form>
     
    <%@ include file="/WEB-INF/vues/includes/footer.jsp" %>
    Si vous voulez assister aux résultats n'hésitez pas à me contacter.

    Merci de votre aide en tout cas!!

    Mohicane

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

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  3. Spring + fichier JavaScript
    Par Esil2008 dans le forum Spring
    Réponses: 12
    Dernier message: 24/07/2007, 17h12
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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