我有一个登录页面,其表单操作为j_security_check。截至目前,该表单只有两个字段,即用户名
和密码。我想向此表单添加一个新的下拉列表,并使用收集 Controller 中的选定值
@RequestParam
。由于某种原因,我无法将此下拉值从 JSP 传递到我的 Controller ,因为它抛出
异常:MissingServletRequestParameterException
(每当请求参数丢失时都会发生)。
在下面的代码中,我添加了视觉效果下拉列表。我需要在这里使用 Spring:Bind
标签吗?
此外,成功登录后,控件将定向到具有请求映射 /controller1.html 的 Controller ,这就是
我正在尝试收集下拉值。
<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>
Controller 代码:
@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";
}
最佳答案
您需要通过扩展AbstractAuthenticationProcessingFilter
来创建您自己的过滤器
我眼前没有完整的代码,但以下文章可以帮助您:
关于java - Spring MVC 请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822254/