Spring MVC上传文件并发送解析​​后的数据

时间:2011-12-04 05:11:44

标签: java javascript ajax spring model-view-controller

我正在使用Spring MVC作为我的Web应用程序。我正在实现文件上传功能。在本教程之后,我能够通过输入类型“file”的提交动作将上传的文件发送到服务器。然后我在服务器端解析上传的xls文件,并需要将解析后的数据(3个自定义对象列表)发送回相同的表单进行显示。我通过ModelAttribute发回了数据。

然而,我现在的问题是,在客户端,我需要在我的javascript中使用这些自定义对象列表,但我只能通过jstl标记库检索自定义对象的每个字段,但我无法获取这些自定义对象在我的javascript中我需要它们用于其他逻辑实现。

然后我尝试了一个Ajax文件上传插件,因为ajax调用可以返回JSON响应,哪些对象可以在Javascript中使用。但无法使插件正常工作。

我已经坚持这个问题好几天>。<有人可以帮忙吗?在Javascript或Ajax调用解决方案中使用ModelAttribute的解决方案都可以。非常感谢!!!

1 个答案:

答案 0 :(得分:0)

有没有理由不能简单地将模型对象“压扁”为HTML,然后使用DOM API从Javascript访问它们?

你说你返回3个自定义对象列表。那么,对于每个列表,您可以构建一个(隐藏的)HTML表格,例如,如果Person中有ModelAttributepeople个对象列表,则称为<table id="people-table"> <c:forEach var="person" items="${people}"> <tr id="${person.id}> <td class="person-name">${person.name}</td> <td class="person-age">${person.age}</td> <td class="person-height">${person.height}</td> </tr> </c:forEach> </table>

people-table

现在在您的Javascript中,您遍历$("#people-table tr").each( var personId = $(this).attr("id"); var personName = $(this).find("td.person-name").text(); // etc, etc // Do something with these as required ); 中的行,执行您需要做的任何事情 - 例如使用jQuery

table

它可能不是最优雅的解决方案,但它至少很容易调试 - 您可以随时检查{{1}}使用Firebug等来查看数据是否正确,从那里您将知道是否继续调试服务器端或Javascript。