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
.
我是 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
.