2010-03-03 131 views
1

我有一個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

回答

4

這是一個JSON字符串。它是否真的作爲請求發送參數?即

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

這些東西通常被髮送「普通的香草」的要求,你需要通過HttpServletRequest#getInputStream()HttpServletRequest#getReader()處理。

更新:對不起,沒有看到你已經弄明白了。我在瀏覽器標籤中明顯打開了這個主題太久。但事實上,只要請求不是由「普通」HTML表單發送的,就需要自己解析請求主體。請記住字符編碼,否則你會遇到麻煩。

0

似乎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

0

結束了使用的request.getReader()方法來手動解析該請求。

+0

不,如果請求形成正確的POST請求(而不是多部分,例如),那麼getParameter應該是OK – Bozho 2010-03-03 13:45:37