在我的应用程序中,我将参数从网格传递到servlet页面。但是在servlet中,它将以null
的形式出现。知道我的代码有什么问题..
注意:从这个servlet页面我将获取另一个网格的数据。
传递参数的函数:
function callAjaxToCheckSession(selected)
{ alert(selected);
Ext.Ajax.request({
url: 'YieldCurveServlet',
method:'POST',
headers: {'application/json'},
params: {
YCSET_ID: selected
},
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
console.dir(obj);
},
failure: function(response, opts) {
console.log('server-side failure with status code ' + response.status);
}
});
}
在这里,我在警报中获得价值。和http头中的相同值(请求有效负载YCSET:值)。但是在servlet中它会变为null。 这是我的servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String val = request.getParameter("YCSET_ID");
System.out.println(val);
这是标题部分:
Request Method:POST
Status Code:200 OK
**Request Headers**
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:21
Content-type: text/html
Cookie:JSESSIONID=5621DF422D5E54A4EFFD29E5868A40FE
X-Requested-With:XMLHttpRequest
**Request Payload**
YCSET_ID=SPREAD_CURVE
**Response Headers**
Content-Length:56
Content-Type:text/html
Date:Tue, 24 Dec 2013 12:48:13 GMT
Server:Apache-Coyote/1.1
有任何解决此问题的建议吗?
答案 0 :(得分:0)
您必须使用getParameter函数在请求中获取值send作为参数,因此取消注释该行:
String val = request.getParameter("YCSET_ID")
答案 1 :(得分:0)
request.getParameter("parameter_name");
适用于查询字符串参数和表单数据。要从request
获取JSON数据服务器,请尝试以下命令:
BufferedReader buff = request.getReader();
String json = buff.readLine();
if (!json.startsWith("[")) {
json = "[" + json + "]";
}
if
部分在您的阵列上有一个值且看起来更像是一个对象时有效。这样你就可以将它视为一个数组了。