У меня есть страница входа с действием формы 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";
}