2013-03-14 104 views
1

带弹簧的注释params不起作用。弹簧参数不起作用

@RequestMapping(value = "/login", method = RequestMethod.PUT) 
public @ResponseBody ResponseMsg login(@RequestParam String userName, @RequestParam String password) 
{ 
    ResponseMsg responseMsg = CommonUtils.checkParam(userName, password); 

    if(responseMsg.getStatus().equalsIgnoreCase("True")) 
    { 
     responseMsg = userService.login(userName, password); 
    } 
    return responseMsg; 
} 

我使用这个函数来获取put的值,但是它显示了400 Bad Request。任何帮助?

+1

你能后的链接/ JavaScript代码调用此方法? – 2013-03-14 09:23:42

+0

localhost:8080/karmaFriend /登录后,我把数据放在头像用户名:kkk 密码:kkk – 2013-03-14 09:25:04

+0

那么这是一个职位? – 2013-03-14 09:25:37

回答

3

权ANS这是... ...和THX到OQJF

@RequestMapping(value = "/login", method = RequestMethod.GET) 
    public @ResponseBody ResponseMsg login(@RequestHeader(value="username", required=false) String userName, 
      @RequestHeader(value="password", required=false) String password) { 

     ResponseMsg responseMsg = CommonUtils.checkParam(userName, password); 
     if(responseMsg.getStatus().equalsIgnoreCase("True")) 
      responseMsg = userService.login(userName, password); 
     return responseMsg; 
    } 
1

首先使用萤火虫查看您发送给控制器的参数。如果参数名称正确。我认为原因是该字段使用@RequestParam注解,缺省值是必需的,这意味着从客户端发送的参数必须包含它们,它们是userName和passWord,更改为:@RequestParam(value="username" required=false) String userName, @RequestParam(value="password" required=false) String password并尝试使用它。

+0

但大的事情是,我用@ RequestParam我解决了它使用@RequestHeader – 2013-03-14 10:18:19

+0

哈哈,伙计。原因是你没有使用哪个注解,因为你没有指定注解的值,所以你使用的1个字段名称是userName,那么默认情况下,Spring将尝试找到一个名称为userName的参数,但是你的参数名是用户名,它找不到它。 – OQJF 2013-03-14 12:19:53

0

我不确定你想在这种情况下使用文章。但你可以尝试访问头PARAMS如下:

@RequestMapping(value = "/login", method = RequestMethod.PUT) 
public @ResponseBody ResponseMsg login(@RequestHeader("username") String userName, @RequestHeader("password") String password) { 
       ResponseMsg responseMsg = CommonUtils.checkParam(userName, password); 
       if(responseMsg.getStatus().equalsIgnoreCase("True")) 
        responseMsg = userService.login(userName, password); 
       return responseMsg; 
      } 
+0

没有它的工作不像那样...我已经和那个问题 – 2013-03-15 10:45:24

+0

@krishan但在上面的文章中提到你用'@ RequestHeader'解决它 – 2013-03-15 12:19:38