JSP请求对象没有参数

JSP请求对象没有参数

问题描述:

我有一个JSP文件create.jsp,它接收来自包含数据参数的Ext网格的POST请求。萤火显示POST这样的:JSP请求对象没有参数

{"data":{"a":"","b":"","c":""}} 

当我尝试使用此方法检索从在create.jsp请求对象中的数据,

request.getParameter("data"); 

返回null。实际上,请求对象不包含任何参数或属性。

我已经测试了包含xaction的POST的create.jsp:read,然后request.getParameter(“xaction”)返回“read”,如预期的那样。

+0

hm,提交的种类是什么?它碰巧是多部分/形式数据吗? – Bozho 2010-03-03 13:45:56

这是一个JSON字符串。它是否真的作为请求发送参数?即

data={"data":{"a":"","b":"","c":""}} 

这些东西通常被发送“普通的香草”的要求,你需要通过HttpServletRequest#getInputStream()HttpServletRequest#getReader()处理。

更新:对不起,没有看到你已经弄明白了。我在浏览器标签中明显打开了这个主题太久。但事实上,只要请求不是由“普通”HTML表单发送的,就需要自己解析请求主体。请记住字符编码,否则你会遇到麻烦。

似乎data具有多于一个的值,所以尝试:

request.getParameterValues("data"); 
+0

不幸的是返回null。 – 2010-03-03 13:10:25

+0

通过request.getParameterNames循环以查看即将到来的内容 – Bozho 2010-03-03 13:33:50

+0

request.getParameterNames为空。 ' – 2010-03-03 13:45:48

结束了使用的request.getReader()方法来手动解析该请求。

+0

不,如果请求形成正确的POST请求(而不是多部分,例如),那么getParameter应该是OK – Bozho 2010-03-03 13:45:37