我正在研究Spring mvc,也是这个概念的新成员。我有一个使用无序列表的下拉列表,我想在单击提交按钮时从Controller中的下拉列表中获取数据。我也有文本字段,这很容易让测试字段进入控制器使用。但我不知道如何从下拉列表中获取数据。我的jsp页面是这样的 我已经实现了像这样的HTML代码
<form role="form" method="post" action="/Web/password.html">
<fieldset>
<div class="form-group input-group">
<span class="input-group-addon">
<i class="glyphicon glyphicon-user"></i>
</span>
<input class="form-control" placeholder="User Name" name="userName" type="email" required="" autofocus="">
</div>
<div class="form-group input-group">
<span class="input-group-addon">Applications</i></span>
<div class="btn-group" id='btnn'>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span data-bind="label">Select One Application</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu" name="dropDown" role="menu" style="height:200px;overflow: auto;" >
<c:forEach var ="entry" items="${listOfApp }">
<li><a tabindex="-1" href=""><c:out value="${entry }" /></a></li>
</c:forEach>
</ul>
</div>
</div>
</fieldset>
</form>
我的控制器是
@RequestMapping(value = "/password.html", method = RequestMethod.POST)
public String submit(@RequestParam (value ="userName") String userName,
@RequestParam ("dropDown") String dropDown) {
System.out.println(dropDown+" "+userName);
return "Hi";
}
我在控制器中使用<li>
作为文本字段。但是在服务器上显示错误,它没有从名称'dropdown'获取值。如果有人知道如何解决这个问题,请帮助我。
答案 0 :(得分:1)
Spring MVC将从html select中填充模型,但是你的下拉是基于ul / li而不是html输入。
如果你可以切换到选择或弹簧形式:选择,形式:选项或形式:选项它将起作用。 您需要将taglib用于spring标签,将其放在jsp的顶部
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
如果你必须保留ul / li,你需要用隐藏的字段来支持它。
要使用隐藏,请从ul中删除名称dropDown。 在javaScript中,在选择更改时附加事件侦听器并将ul / li与隐藏同步 隐藏的feild应该有dropDown这个名字。
<input type="hidden" name="dropDown" />
请尝试以下链接获取提示 http://www.mkyong.com/spring-mvc/spring-mvc-dropdown-box-example/
Spring相关文档 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/view.html