我在发布对Spring控制器的调用时遇到异常
例外是:
org.springframework.web.bind.MissingServletRequestParameterException : Required Long parameter 'userId' is not present"
我的Javascript文件是:
$scope.removeUser = function(user){
var userId = JSON.stringify(user);
$http.post('/portal/settings/user/deletecustomeruser', userId).success(function(data){
$scope.response = data;
})
}
}
Spring控制器代码是:
@RequestMapping( value = "/user/deletecustomeruser", method = RequestMethod.POST , headers="Accept=application/json")
public @ResponseBody String deleteCustomerUser( @RequestParam (value = "userId") Long userId,
HttpServletRequest request )
throws Exception
{
String returnString = "";
User user = userService.getUserById( userId );
当我添加(required = false)
时,userId
值变为null
。
JavaScript控制器显然以JSON格式发送"userId"
,但是从控制器端出现了一些问题。
我在stackoverflow中检查了几乎所有问题,但是给定的解决方案没有帮助。
答案 0 :(得分:7)
您希望userId作为服务器端的请求参数,但您在客户端http post请求中将userId作为请求正文发送,
更改客户端以将userId作为请求参数发送
$computer = [ADSI]"WinNT://$env:computername,computer"
$newuser = $computer.Create("user", "NewUser1")
$newuser.SetPassword("Password1")
$newuser.SetInfo()
或更改服务器端以将userId用作控制器中的请求正文
$http.post('/portal/settings/user/deletecustomeruser?userId='+userId)