2011-07-25 38 views
1

我有一個登錄頁面,其表單操作爲j_security_check。截至目前這種形式只有兩個字段,即用戶名 和密碼。我想添加一個新的下拉列表到這個表格,並使用 @RequestParam收集控制器中的選定值。出於某種原因,我無法將此下拉值從JSP傳遞到我的控制器,因爲它拋出了 exception: MissingServletRequestParameterException(任何時候發生請求參數丟失)。
在下面的代碼中,我添加了Visuals下拉菜單。我需要在這裏使用Spring:Bind標籤嗎? 也成功登錄時,該控件被定向到一個控制器與請求映射/controller1.html,這是 我試圖收集下拉值。Spring MVC Request Param

<form name="appLogin" action="j_security_check" method="POST"> 

<table width="100%"> 
    <tr> 
     <td align="center"> 

     <table> 
      <tr> 
       <td>Username: </td> 
       <td><input id="userName" name="j_username" value=""/></td> 
      </tr> 
      <tr> 
       <td>Password: </td> 
       <td><input name="j_password" type="password" value="" /></td> 
      </tr> 

       <tr> 
       <td>Visual: </td> 
       <td><Select name="visuals" id="visuals"/> 
         <option value="S1">S1</option> 
         <option value="S2">S2</option> 
         <option value="S3">S3</option> 
         <option value="S4">S4</option> 
        </Select> 
       </td> 
      </tr> 

     </table> 

     <table> 
      <tr> 
       <td> 
       <button type="submit" name="submit" value="Sign In">Sign In</button> 
       <input type="submit"/> 
       </td> 
      </tr> 
     </table> 
     </div> 
     </div> 
     </td> 
    </tr> 
</table> 
</form> 

控制器代碼:

@RequestMapping(value = " /controller1.html", method = RequestMethod.GET) 
    public String setupForm(@RequestParam(value = "visuals", required=false) String visuals, 
      ModelMap model) 
    { 
     List<String> studentNames = new ArrayList<String>(); 
     List<String> teacherNames = new ArrayList<String>(); 


     model.addAttribute("someData", teacherNames); 
     model.addAttribute("anotherData", studentNames); 

     model.addAttribute("visuals", visuals); 

     log.info("Role from Dropdown: " + visuals); 

     return "school/classTen"; 
    } 
+0

和帶有@RequestParam的控制器方法看起來像什麼? –

+0

它只是一個返回ArrayLists對的簡單方法。 – t0mcat

+0

我問,因爲不知道控制器的方法是什麼樣子,這是難以置信的難以排除故障。 –

回答