2
votes

comment obtenir la valeur de l'attribut de demande en dehors de la boucle

J'essaie de définir des valeurs dans l'objet de requête à l'intérieur de la boucle for et il a été défini avec succès, mais comment puis-je obtenir la valeur si la valeur est définie dans la boucle. Le code que j'ai essayé est donné ci-dessous -

        String str = "";                
            for(int i=0; i<sizearray.length; i++){
                str += sizearray[i];                         
                request.setAttribute("ssize", str.substring(str.lastIndexOf("-") + 1));       // two value set ie. 11 and 19
            }               
        out.println(request.getAttribute("ssize"));  // giving one value ie. 19


0 commentaires

3 Réponses :


1
votes

Vous devriez pouvoir accéder à la valeur de request en dehors de la boucle for sans aucun problème.

Je pense que le vrai problème est que vous remplacez pratiquement la valeur initiale (11) lorsque la dernière valeur (19) est définie.

En effet, vous utilisez la même clé pour les deux valeurs.


0 commentaires

0
votes

Vous avez obtenu la valeur actuelle de l'attribut et concaté le nouveau ... Essayez quelque chose comme:

String str = "";                
            for(int i=0; i<sizearray.length; i++){
                str += sizearray[i];                         
                request.setAttribute("ssize", request.getAttribute("ssize") + str.substring(str.lastIndexOf("-") + 1));
            }               
        out.println(request.getAttribute("ssize"));


0 commentaires

0
votes

Cela est dû au fait que vous remplacez les anciennes valeurs par des valeurs plus récentes car vous utilisez la même clé pour tous. Une meilleure approche serait de créer une Carte , d'y placer des données, puis de stocker cette carte dans l'objet de requête en tant qu'attribut.

    Map<String, String> dataMap = new HashMap<>();
    String str = "";                
    for(int i=0; i<sizearray.length; i++) {
        str += sizearray[i];                         
        dataMap.put("data"+i, str.substring(str.lastIndexOf("-") + 1));       
    }    
    request.setAttribute("ssize", dataMap);
    out.println(request.getAttribute("ssize")); // this will now give you all values.


1 commentaires

Merci pour votre aide ... cela a fonctionné mais je veux mettre la valeur de la carte dans request.setattribute