【问题标题】:Spring + JQuery dynamic bindingSpring + JQuery 动态绑定
【发布时间】:2011-03-28 18:48:03
【问题描述】:
我是 Spring 新手,仍在学习。我想做一些更高级的表单处理。
目前我的问题是动态列表绑定。
我想要一个文本框、一个列表和添加按钮。什么是情景?
用户填充文本框(带有自动完成功能)并单击添加按钮。启动添加操作后,列表被填充而不向服务器发出请求。
用户在列表中添加了更多项目,然后将表单提交到服务器。
什么问题?
我不知道如何绑定列表或将动态数据传递给服务器。
目前我已经设法从控制器获得 JSON 响应,并带有自动完成列表。
Spring 表单是否适合这项任务?实现这一点的正确方法是什么?
【问题讨论】:
标签:
java
jquery
spring
spring-mvc
【解决方案1】:
这是我认为您正在努力实现的目标。首先:我假设问题不是自动完成/添加到列表,而是如何处理 MVC 端的列表。假设您的命令对象有一个属性“员工姓名”,定义为
List<String> getNames(){..}
void setNames(List<String>){..}
在 JSP 方面,您可以像这样定义表单列表项:
<form:form>
<c:forEach items="${command.names}" var="name" varStatus="status">
<form:input path="names[${status.index}]" />
</c:forEach>
</form:form>
使用 jQuery 使其“动态”的真正技巧是使用 下一个递增索引添加到表单中。所以你有什么地方:
<script type="text/javascript">
var count = ${fn:length(command.names)};
function addToList()
{
// add to form with name to "names[count]"
count++;
}
</script>
将它们放在一起,您将控制器 formBackingObject 中的列表设置为 AutoPopulatingList
这应该足以让你开始。