1. 程式人生 > >關於spring mvc傳參錯誤 Required String parameter 'xxxxx' is not present

關於spring mvc傳參錯誤 Required String parameter 'xxxxx' is not present

controller如下:

 1 @RequestMapping(value=("/login"), method=RequestMethod.POST)
 2     public ModelAndView getUser(@RequestParam("loginName")String loginName,@RequestParam("passWord")String passWord,ModelAndView mv){
 3         User user1=userService.checkLogin(loginName, passWord);
 4         System.out.println(user1);
5 if(user1!=null){ 6 mv.setViewName("redirect:/index"); 7 } 8 else{ 9 mv.setViewName("forward:/userList"); 10 } 11 return mv; 12 }

html登陸程式碼如下:

<div class="container">
      <form class="form-signin" method="post" action="login">
        <h2 class="form-signin-heading">Please sign in</h2>
       <!--  <label for="loginName" class="sr-only">LoginName</label> -->
        <input type="text" id="loginName" class="form-control" placeholder="LoginName" required autofocus>
        
        <!--  <label for="passWord" class="sr-only">PassWord</label>-->
        <input type="password" id="passWord" class="form-control" placeholder="passWord" required>
        <input class="btn btn-lg btn-primary btn-block" type="submit" value="sign in"/>
      </form>

    </div> 

產生警告: Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'loginName' is not present]

 

檢查程式碼發現引數無法傳遞,將input標籤的id該為name

如下:

  name 屬性規定 input 元素的名稱。

  name 屬性用於對提交到伺服器後的表單資料進行標識,或者在客戶端通過 JavaScript 引用表單資料。

註釋:只有設定了 name 屬性的表單元素才能在提交表單時傳遞它們的值。