我有一个Spring MVC应用程序,使用JSP作为我的视图技术,使用Jquery for AJAX。我有一张如下表:
<table>
<tr>
<td>name1</td>
<td>value1</td>
<td>setting1</td>
</tr>
<tr>
<td>name2</td>
<td>value2</td>
<td>setting2</td>
</tr>
</table>
我需要序列化这个表,以便以后可以绑定到我的控制器中的对象。但是,jquery serialize()方法仅适用于表单字段。将表数据放入HTTP请求以便以后将其绑定到java对象的最佳方法是什么?
编辑:
我有一个拥有集合的java对象
class MyOject {
private List<AnotherObject> items = new ArrayList<AnotherObject>();
// standard getters and setters
}
class AnotherObject {
private name;
private value;
private setting;
// getters and setters
}
在屏幕中,用户即时创建新项目。当用户完成后,他们提交表单,然后我需要处理列表中的所有项目并使用这些项目实例化新的集合。
出于显示目的,我在创建项目时创建新的表格行。
答案 0 :(得分:2)
<Form>
标记是您告诉浏览器“将此内容放入网络请求中”的方式。这就是你在Spring中获得对象绑定的方式。你不使用表格的原因是什么?您不必将其放在页面中的表单中,如果您确实需要,可以在javascript中提供表元素ID并获取其内容。
编辑:我想也许很难回答,因为不清楚为什么你希望浏览器首先回馈你给它的东西。也许您真正需要的是控制器上的@SessionAttributes()
注释,以便您可以保留显示给用户的原始页面的状态?
更多编辑:
kk,现在看。如果您想要的是Spring Web数据绑定,则在添加更多表行时并行创建表单。如,<form id="myObject" action="whateverYouNeedHere.htm" method="post">
<input type="hidden" id="items[0].name" name="items[0].name" value="foo"/>
<input type="hidden" id="items[0].value" name="items[0].value" value="bar"/>
<input type="hidden" id="items[0].setting" name="items[0].setting" value="buzz"/>
<input type="hidden" id="items[1].name" name="items[1].name" value="foo"/>
<input type="hidden" id="items[1].value" name="items[1].value" value="bar"/>
....
然后只需提交,它就会为你绑定。如果您的意思是自己处理内容,那么您可能会像其他人一样使用XHR。
答案 1 :(得分:1)
使用Spring Data Binding and Validation API将其绑定到您自己设计的Java对象中。该文档与网络无关;查看后面的章节,了解Web层如何利用它。
我认为你需要在表格之外进行抽象。
答案 2 :(得分:0)
为了将您的表信息粘贴到java对象中,您首先需要将其发送到服务器..因为您需要通过XHR或表单发送它。
为了序列化对象,你需要编写一些javascript / jquery。 我可以为你编写它,但是你的表格看起来有些模糊,我也不想猜测你想要添加数据的java对象是什么样的。