2017-07-07 2 views
0

Je suis nouveau aux servlets et JSPs. Récemment .. J'ai essayé d'envoyer des données de ma servlet à JSP en utilisant requestDispatcher.JSP retournant null pour request.getParameter() mais montre des valeurs dans EL

Ceci est mon code Servlet responsable:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     sampleClass sampleObject = new sampleClass(1, "myname"); 
     ObjectMapper mapper = new ObjectMapper(); 
     String jsonstring = mapper.writeValueAsString(sampleObject); 
     request.setAttribute("values", jsonstring); 
     request.setAttribute("valuees", "testing"); 
     request.getRequestDispatcher("/somejsp").forward(request, response); 
    } 

partie Ma JSP responsable de la récupération des données:

${values} 
${valuees} 
<% 
    //out.println(Message); 
    Enumeration enume = request.getParameterNames(); 
    for (Entry<String, String[]> entry : request.getParameterMap().entrySet()) { 
     String name = entry.getKey(); 
     String value = entry.getValue()[0]; 
     // ... 
    } 
    String value = request.getParameter("values"); 
    out.println(value); 
    String valuee = request.getParameter("valuees"); 
    out.println(valuee); 
%> 

Mais la sortie que je reçois est:

{ "n": 1 , "nom": "myname"} test null null

comme vous pouvez le voir à la fois le EL donne une sortie correcte, l'imp La lementation avec l'énumération ne retourne rien et les deux autres retournent null.

Je ne comprends pas cela. Je n'ai pas trouvé de solution en ligne.

Répondre

1

Vous confondez attributs (tout objet que vous choisissez de stocker dans la demande, sous un nom de votre choix), avec paramètres (chaînes envoyées par le navigateur dans le cadre de la demande, comme dans foo=bar&baz=2.