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

Struts 2 Java Discussion :

Struts 2 & javaScript


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Par défaut Struts 2 & javaScript
    Bonjour,

    Je suis un étudiant et je fais mon stage de fin d'étude.

    Je rencontre au cours de mon développement d'une appli web en Struts 2, un problème qui me bloque c'est pourquoi je sollicite votre aide.

    En fait je veux récupérer la valeur de mon champs(textfield) codeArticle que je veux passer a une fonction de java qui va dans mon modele récuperer ce que je veux. Mais je rencontre toujours un nullpointeur!!!

    voici mon code.



    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
    <%-- 
        Document   : ajouter_Anomalie
        Created on : 12 avr. 2013, 08:09:52
        Author     : i0188185
    --%>
     
     
    <%@page import="java.lang.String"%>
    <%@page import="model.AnomalieModel"%>
    <%@page import="bean.Anomalie"%>
    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@page import="model.FournisseurModel"%>
    <%@page import="bean.Fournisseur"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <link rel="stylesheet" type="text/css" href="css/defaut.css">
            <sx:head /> 
            <title>Ajouter une Anomalie</title>
     
            <script type="text/javascript">
     
                function calcul() {
                    <%
                        Fournisseur fournisseur = new Fournisseur();
                        FournisseurModel fm = new FournisseurModel();
                        String l = "1";
                        String f = "1";
    mon probleme se situe a ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String s = request.getParameter("codeArticle");
    Mais si je fixe une valeur qui existe dans ma base de données ça marche
    //String s1="13";
    Mais l'idéal serai de récupérer le value du textfield.

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
                        if (fm.getFournisseurByCodeArticle(s) != null) {
                            fournisseur = fm.getFournisseurByCodeArticle(s);
                            l = fournisseur.getOpmDescription();
                            f = fournisseur.getFamille();
                        }
    
                    %>
                     
                        document.anomalie.libelle.value ="<%=l%>";
                        document.anomalie.famille.value ="<%=f%>";
                    }
    
                    function Entree () {
                        if (estCeNumerique(document.anomalie.codeArticle.value)) {
                            calcul()
                            return true;
                        } 
                        else {
                            document.anomalie.codeArticle.value = "";
                            document.anomalie.codeArticle.focus();
                        }
                        alert ("entrer un vrai code article!");
                        return false;
                    }
    
                    function estCeNumerique (chaine) {
                        for (i=0; i<chaine.length; i++) {
                            caractere = chaine.charAt(i);
                            if (caractere < "0" || caractere > "9") {
                                return false;
                            }
                        }
                        return true;
                    }
            </script>
        </head>
    
        <body <!--onload="alert('Les champs * sont obligatoires !!!');"-->   
    
    
            <div id="wrapper">
                <header></header>
                <center>
                    <div id="espace">
                        <s:if test="errors.size()>0">
                            <div id="message_erreur">
                                <label>Les erreurs suivantes se sont produites: </label>
                                <ul>
                                    <s:fielderror />
                                </ul>
                            </div>
                        </s:if>
                        <fieldset>
                            <legend>DECLARATION D'UNE ANOMALIE</legend>
                            <s:form name="anomalie" method="post" action="Ajouter_Anomalie" enctype="multipart/form-data" cssStyle="">
    
                                <table id="tab1" width="45%">
                                    <s:hidden name="numReclamation" key="N° Reclamation" />
                                    <s:hidden name="Num_reclamation" key="N° Reclamation" />
                                    <s:textfield name="date" label="Date(dd-MMM-yyyy)"  value="%{#session.today}" readonly="true"/>
                                    <s:textfield name="par" key="Nom du declarant" value="%{#session.nUtilisateur}" readonly="true"/>
                                    <s:select name="secteur" label="Secteur"  multiple="false" size="1" 
                                              list="#{'Reception':'Reception', 'Magasin':'Magasin', 'Approvisionnement':'Approvisionnement', 'UPP':'UPP', 'UPC':'UPC'}"/>
                                </table>
    
                                <table id="tab2" width="45%" >
                                    <s:textfield name="codeArticle" key="Code article" onblur="Entree()"/>                       
                                    <s:textfield name="famille" key="Famille" readonly="true"/>
                                    <s:textfield name="libelle" key="Libelle"  readonly="true"/>
                                    <s:textfield name="numLotSanofi" key="N° de lot Sanofi" />
                                    <s:textfield name="sousLotSanofi" key="Sous lot Sanofi" />					
                                    <s:select name="activiteImpactee" label="Activité Impactée"  multiple="false" size="1" 
                                              list="#{'UPP':'UPP', 'UPM':'UPM', 'UPS':'UPS', 'UPC':'UPC', 'AQF':'AQF', 'PDT':'PDT'}"/>                                       
                                    <s:select name="nomFournisseur" label="Choix du fournisseur"  multiple="false" size="1" 
                                              list="#{'SA':'SA', 'M':'Ma'}"/>
                                    <s:textfield name="numLotFournisseur" key="N° de lot Fournisseur" />
                                    <sx:datetimepicker name="dateLivraison" label="Date de réception" displayFormat="yyyy-MMM-dd" value="%{'today'}"/>
                                    <s:textfield name="numCommande" key="N° de commande" />
                                    <s:textfield name="numBobine" key="Sous lot / bobine / carton " />
                            </fieldset>
                            </table>
    
                            <table id="tab3" width="45%">
                                <s:textarea name="defautObserve" key="Anomalie et Risques" cols="25" rows="5" />					
                                <s:select name="echantillonTransmis" label="Echantillons"  multiple="false" size="1" 
                                          list="#{'':'', 'Oui':'Oui', 'Non':'Non'}"/>
                                <s:select name="demandeStatutQA" label="Demande mise en QA"  multiple="false" size="1" 
                                          list="#{'Non':'Non', 'Oui':'Oui'}"/>
    
                                <s:file name="image" id="image" label="Image" labelposition="left" cssClass="input" />
    
                                <s:textfield name="quantiteImpactee" key="Quantite impactee" />
                                <s:textfield name="coutArticle" key="Coût article" />
                                <s:textfield name="tempsArretTri" key="Temps d'arrêt + Tri" />
                                <s:textfield name="coutTri" key="Coût tri" />
                                <s:textfield name="dureeTraitement" key="Durée traitement" />
                                <s:textfield name="coutTraitement" key="Coût traitement" />
                                <s:textfield name="fraisGeneraux" key="Frais generaux" />
                                <s:textfield name="coutTotal" key="Coût total" required="true"/>                     
                            </table>
    
                            <s:submit value="Valider" align="center" id="btn_valider"/>
                            <s:reset value="Effacer" align="center" id="btn_effacer"/>
                        </s:form>
    
                        <s:form method="post" action="Retour_Accueil">
                            <s:submit value="Retour" id="bnt_retour"/>                          
                        </s:form>
    
                        </fieldset>
                    </div>
                </center>
            </div>
        </body>
    </html>

    J'attends impatiemment votre aide car je suis vraiment bloqué !!!

  2. #2
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Wow!

    Il y a plein de trucs à dire... Je sais pas par ou commencer...
    Tu n'as pas un superviseur à ton stage qui puisse t'aider?

    Je m'excuse d'être aussi direct mais tu rates les bases du Java Web.

    Je vais quand même essayer de te remettre sur le droit chemin.

    1. Jamais de code métier dans la vue. tu fais quoi de la séparation des couches?
    2. Pas de Javascript dans le head. On met tout en fin de page.
    3. On n'accède pas au modèle comme ça. Et ta couche Service ou Dao tu en fais quoi? En plus si tu veux récupérer des données à la volée depuis ta vue en fonctionne ce que l'utilisateur entre sans recharger ta page utilises de l'Ajax.
    4. Le code article est entré à la main par l'utilisateur? Si oui, tu récupères la valeur du champs via Javascript. Si non, tu as accès à tes variables qui sont déclarées dans ton action via leur getter.

    C'est déjà pas mal en peu de temps. Revois des tutos Struts 2 et des exemples. Bonne chance!

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par ruscov Voir le message
    2. Pas de Javascript dans le head. On met tout en fin de page.
    Euh non, il est même préférable de déclarer les fonctions dans la balise head.

    A+.

  4. #4
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Heu non... Pour une simple et bonen raison de performance. Si tu met dans le head, ton DOM ne se chargera pas tant que tes javascripts ne se chargeront pas.
    A moins que tu n'ai vraiment pas le choix, tu déclares tes javascript en bas de page. Enfin, c'est juste les bonnes pratiques du Web, après...
    http://developer.yahoo.com/performan...html#js_bottom

Discussions similaires

  1. Formulaire Struts 2 et javascript
    Par mrjeronimo dans le forum Struts 2
    Réponses: 1
    Dernier message: 03/04/2008, 09h41
  2. [Struts-Layout] Problème Javascript dans layout:treeview
    Par lili2704 dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/06/2007, 16h40
  3. [Struts] Affichage CSS, Javascript
    Par R1pToR dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/06/2007, 17h35
  4. Réponses: 3
    Dernier message: 18/05/2007, 17h24
  5. Insérer du Struts dans du javascript
    Par guilhemr dans le forum Struts 1
    Réponses: 2
    Dernier message: 28/06/2006, 17h33

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