У меня есть страница входа с действием формы j_security_check. На данный момент в этой форме есть только два поля, а именно имя пользователя и пароль. Я хочу добавить в эту форму новый раскрывающийся список и собрать выбранное значение в контроллере, используя @RequestParam
. По какой-то причине я не могу передать это раскрывающееся значение из JSP в свой контроллер, так как он выдает exception: MissingServletRequestParameterException
(что происходит каждый раз, когда параметр запроса отсутствует).
В приведенном ниже коде я добавил раскрывающийся список Visuals. Нужно ли использовать здесь тег Spring:Bind
? Также при успешном входе в систему элемент управления направляется на контроллер с сопоставлением запросов /controller1.html, и именно здесь я пытаюсь собрать раскрывающееся значение.
<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";
}