如何从java控制器中的Ext.Ajax.request获取参数

时间:2012-01-31 11:45:19

标签: java hibernate spring extjs4 extjs-mvc

我在使用Ext.Ajax.request检索我传递给JAVA控制器类的参数时遇到一个问题。

我正在使用以下代码向我的控制器发送请求

Ext.Ajax.request({
             url : 'projecttask/GetprojectTasks.action',
             method: 'POST',
             jsonData: {
                sampledata: record.data
            },
            type: 'json',
            scope: this, // add the scope as the controller
             callback : function(options, success, response) {
                console.log('RESPONSE FROM SERVER :'+response);
             }
           });

我接收请求的java控制器方法是

@RequestMapping(value="/projecttask/GetprojectTasks.action")
    public @ResponseBody Map<String, ? extends Object> getprojectTasks(HttpServletRequest request,
            HttpServletResponse response,@RequestBody Project project) throws Exception {
        try {
            System.out.println("PROJECT ::"+project);
            System.out.println("RPOJECT DATA ::"+request.getParameter("sampledata"));
            Object data = request.getParameter("sampledata");
            Project prj = (Project) data;
            System.out.println("CREATE TASK DATA IS ::"+prj.getProjectid());            
            return null;            
        }catch(Exception e) {
            return getModelMapError("Error trying to create contact");
        }
    }

但它给了我下面提到的错误

org.codehaus.jackson.map.JsonMappingException: Unrecognized field "sampledata" (Class com.kintu.projectmgt.model.Project), not marked as ignorable

所以我做错了哪些不允许我的函数将samplesata作为参数传递。如何让我的参数传递值有任何想法?

我的firebug显示sampledata包含所有值。请帮我找到问题并尽快解决。

我使用Ext JS 4.0.2a和JAVA作为我的服务器端技术。

1 个答案:

答案 0 :(得分:0)

你可以使用

String postParamsJSON = request.getReader().readLine();

获取POST数据。