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

JSP returning null for request.getParameter() but shows values in EL

我是 servlet 和 JSPs 的新手。 最近.. 我一直在尝试使用 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);
 %>

但我得到的输出是:

{"n":1,"name":"myname"} 测试 null null

如您所见,EL 给出了正确的输出,枚举 return 的实现什么都没有,另外两个 return 为空。

我不明白这个。我在网上找不到任何解决方案。

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