1

我正在开发一个 Spring MVC 应用程序,它应该让用户更改列表的内容。

该列表由具有简单属性(如名称和作者)的 Book 对象组成。该视图是一个 JSP 页面,它显示书籍列表并允许用户更改内容。

更改列表可能意味着添加书籍、删除它们或更改列表中书籍的顺序。

问题是,如何将更改后的列表返回到服务器?我可以编写 JavaScript 来控制列表,但是如何将它发布到 Spring 控制器?另一方面,我可以编写一个 JSP 表单来更改模型,这将很容易提交回服务器,但是我是否仅限于表单输入中的基本文本字段?

编辑:在 JSP 中,使用类似的形式很容易改变单个模型的属性

<form:form action="myaction" method="post" commandName="mybook">

但是如果你的模型是一个(有序的)对象列表,那么你如何编辑它呢?

在 Javascript 中,我可以从响应中获取对象列表并根据需要进行更改,但是如何将其提交回服务器?就像是

$.post("/modifybook.do",{ name: "Spring in Action", author: "Graig Walls" } );

有效,但仅适用于单个对象。

4

2 回答 2

1

您应该避免操纵整个列表,句号。当只有一个列表元素被更改(编辑、添加或删除)时,我看不到需要填充整个项目列表并将其发送回服务器的场景。

我通常在我的应用程序中做的是创建一个处理程序(控制器),用于一次性返回整个对象列表,然后添加另一个处理程序以添加、编辑和删除该列表中的单个条目。在这种情况下,我也尝试坚持使用 REST,这样我就有了一个干净的 API 来表示服务器资源,并且前端(AJAX + jQuery)可以使用它。

这个解决方案对我来说非常有效,所以我建议也坚持下去。

于 2012-06-14T21:33:30.990 回答
1

从未使用过 Spring,这可能不太合适,但您能否不将列表转换为 XML,然后将其发布回 Java,然后在保留所有复杂性和更改的情况下对其进行处理?

于 2012-06-14T12:34:51.807 回答