JSP为request.getParameter()返回null,但在EL中显示值

时间:2017-07-07 14:28:23

标签: java jsp servlets request el

我是servlets和JSP的新手。 最近..我一直在尝试使用requestDispatcher将数据从我的Servlet发送到JSP。

这是我负责的Servlet代码:

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);
    }

我的JSP部分负责检索数据:

${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);
 %>

但我得到的输出是:

{&#34; n&#34;:1,&#34; name&#34;:&#34; myname&#34;}测试null null

正如你可以看到EL给出了正确的输出,Enumeration的实现没有返回任何内容,其他两个返回null。

我不明白这一点。我无法在网上找到任何解决方案。

1 个答案:

答案 0 :(得分:1)

您通过参数(由您发送的字符串来混淆属性(您选择以请求的名称选择存储在请求中的任何对象)浏览器作为请求的一部分,如foo=bar&baz=2