如何从下拉列表中获取数据到spring mvc控制器

时间:2014-12-08 04:55:21

标签: javascript spring spring-mvc

我正在研究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>&nbsp;<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'获取值。如果有人知道如何解决这个问题,请帮助我。

1 个答案:

答案 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