SPRING MVC-一个下拉列表在另一个下拉选择上的动态填充



我们使用的是springmvc版本2.5。我很难在选择第一个下拉列表的基础上加载第二个下拉控件。如果可能的话,我真的不想在这个时候把jQuery这样的东西引入到项目中。我确信这在jQuery之前是可行的。

下面是我尝试做的一个例子:

首先,从一个下拉列表开始,该列表包含由员工id键入的员工姓名列表。

然后,在从该列表中进行选择后,加载并显示第二个下拉列表,其中列出了他们通过办公室id的键入的办公室

然后,最后-从第二个列表(办公室)中进行选择,并显示提交按钮

就jsp代码而言,我从一开始就遇到了麻烦。当下拉列表发生更改时,我无法将表格提交给管理员。onChange事件不能与标记一起使用。如果我使用这个(下面),选择的值不会传递给控制器:

<select path='employee' onChange="submit();">
    <option value="${selected}" selected>${selected}</option>
        <c:forEach items="${employees}" var="currentEmployee">
            <c:if test="${currentEmployee!= selected}">
                <option            value="${currentEmployee.employeeId}">${currentEmployee.employeeName}</option>
            </c:if>
        </c:forEach>
</select>
</form:form>

我不知道如何将选择传递给控制器。显然,我需要知道选择,这样我就可以在第二个下拉列表中加载所选员工的相应数据。

我尝试过initBinder方法:

    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
    binder.setDisallowedFields(new String[] {"employees"});
    Employee employee = (Employee)binder.getTarget();

但是找不到employee对象。

onSubmit方法也没有获取值:

    public ModelAndView onSubmit(Object command) throws ServletException 
{
    String selectedEmployee = ((Employee) command).getName();
    logger.info("The Selected Employee is: " + selectedEmployee );

这也不会拾取选定的员工。我对Spring很陌生,我怀疑我做这种动态加载的方式太离谱了。有可能用spring(没有jQuery)做到这一点吗?一旦我可以动态加载下拉选择,我想我可以完成剩下的工作

有什么想法吗?

HTML select标记没有path属性。它具有name属性。Spring form:select具有path属性。

使用<form:select ...>,而不仅仅是<select ...>

最新更新