参数未从extjs网格传递到servlet页面

时间:2013-12-24 12:57:36

标签: java servlets extjs4

在我的应用程序中,我将参数从网格传递到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

有任何解决此问题的建议吗?

2 个答案:

答案 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部分在您的阵列上有一个值且看起来更像是一个对象时有效。这样你就可以将它视为一个数组了。