如何从Spring MVC的POST中获取params?

时间:2013-06-18 12:24:58

标签: spring-mvc extjs extjs4.2

在我的js文件中,我有一个Ext.Ajax.request来从表中删除用户。最重要的是发送用户名。这是我的请求代码:

Ext.Ajax.request({
    url: 'deleteUser.html',
    method: 'POST',          
    headers: {'Content-Type': 'text/html'},
    waitTitle: 'Connecting',
    waitMsg: 'Sending data...',                                     
    params: {
        username:username
    },
    scope:this,
    success: received,                                    
    failure: function(){console.log('failure');}
});

在萤火虫中,我可以看到帖子myapp / admin / deleteUser.html。在帖子标签中出现username = example。

在服务器端,我有一个控制器来捕获帖子:

 @RequestMapping(method=RequestMethod.POST, value="/deleteUser")
 public @ResponseBody Map<String,String> deleteUserHandler(@RequestParam("username")String username, Model model){
    userService.deleteUser(username);
    Map<String,String> responseMap = new HashMap<String, String>();
    responseMap.put("message", "Success");
    return responseMap;
 }

如果我有@RequestParam(“用户名”)我收到400错误(不正确的请求),如果我尝试另一种方式来获取params我得到null。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

In the firebug i can see the post myapp/admin/deleteRole.html. 
In the post tab appears username=example.

你说你可以看到网络电话 deleteRole.html

但是在你的ajax和你的控制器中它应该是“/ deleteUser”

如果您在控制器中记录某些内容,以便我们可以确定是否已调用该函数。

首先尝试正确映射到您的函数的html之间的连接

@RequestMapping(method=RequestMethod.POST, value="/deleteUser")
public @ResponseBody String deleteUserHandler(@RequestParam("username") String username){
    System.out.println("deleteUserHandler called");
    return "{\"message\" : \"success\"}";
}

如果您的函数调用它应该没问题。