使用Javascript数组填充提交的命令数组/列表?

时间:2013-02-11 14:10:16

标签: java javascript jquery spring spring-mvc

我们在后端使用Spring 3 MVC。

我们有一个页面使用google maps api在地图上创建一系列点。这个数组是一个Javascript数组(google api Marker对象,但我们可以在任何时候获取LatLng,然后是它们的实际long和lat值)。这实际上是关键点,焦点在于javascript数组。

该页面还有一个包含各种其他表单元素的表单(名称,点的描述等)。

我们有一个表单支持Command对象,显然有名称,描述等的变量,我们也可以为点添加一个数组/列表,或者如果它更容易保持lat和longs分开和匹配两个数组或列表以后他们的索引就会出现。

我们希望使用javascript实际提交表单,但在实际提交之前,我们希望将javascript数组(或者更确切地说是其值)放入Command对象中。

我们怎么做?

我们已经看到了各种类似但不完全的问题建议使用JSON.stringify(pointsArray),但这似乎并不像我们想要的那样。

1 个答案:

答案 0 :(得分:0)

因此,如果您使用javascript提交表单并且您在javascript中拥有所有coords,那么在提交表单之前,只需设置您想要的任何格式的输入字段值(命令对象的属性)。假设您选择了这种格式:<input name="command.coords" value="[{lat:5, long:6}, {lat:7, long:8}]"然后在服务器端(对于spring)注册一个自定义PropertyEditor(转换器),将输入格式转换为服务器端所需的格式(可能你会将json转换为List)

它类似于Spring中使用的CustomDateEditor。在UI中,您可能具有不同的日期格式,但是您注册DateEditor以告诉spring如何将UI(String)格式转换为java(Date对象)格式。