我们使用的是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)做到这一点吗?一旦我可以动态加载下拉选择,我想我可以完成剩下的工作
有什么想法吗?
path
属性。它具有name
属性。Spring form:select
具有path
属性。
使用<form:select ...>
,而不仅仅是<select ...>
。