2013-03-14 143 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