springmvc form数据复杂结构提交

yunfound 发布于 2016/05/19 15:54
阅读 355
收藏 1

我有一个数据表,在界面上大概是这样的:



A B
X 0 1
Z 3 2

列名A~B是一个Enum.values()生成,记为Enum1,行头X~Z是另外一个Enum,记为EnumX。最终数据结构是

Map<Enum1,Map<EnumX,Double>>

问:在springmvc controller中怎么接收这些数据?如表格中的X.A = 0,X.B=1。

当然,手工转换,那也是能行的。就是不知道如何写,能够让springmvc解析为

Map<Enum1, Map<EnumX,Double>>格式的聚合数据。

-----------------------------------------------------------------------------

最后是用json格式解决的,后端spring接收参数为:

@RequestBody Map<Enum1, Map<EnumX,Double>> postData

------------------------------------------------

后来改为

@RequestBody List<xEntity> postData

xEntity是一个Entity,其中包含了Enum1,Enumx,Double三个值,与数据库对应,更方便入库。





加载中
0
小小志
小小志
复杂数据使用json传
yunfound
yunfound
这个思路不错呀!!前端是我强项,不超10行js代码就解决了!!!
0
RegnoiX
RegnoiX
request.getParameter
yunfound
yunfound
不要把我想的那么low好不。。。我是在想,怎么在服务端解析出Map<Enum, Map<Enum,Double>>的模型
0
阿信sxq
阿信sxq
在什么情况下需要从v传输这样结构的数据到c呢,一般都是从c传输这样的数据到v吧。出现了这个情况你是不是应该再考虑下
yunfound
yunfound
回复 @阿信sxq : 如果是键值对那很好处理!!现在是一个二层的map,所以springmvc不知道怎么解析了,input的name不知道怎么写才能让spring解析。最后改用在客户端拼装出二层map,spring就一下子解析完成了。
阿信sxq
阿信sxq
回复 @yunfound : 修改后的传回去不应该那么做,毕竟传输的参数都是键值对的形式,如果真的能够那么做也是接收后之后转换的,没有必要,因为总会出错
yunfound
yunfound
C 输出到V,V修改后提交到C,就是这么一个过程。就是一个大的表 X * Y 个数据表格,行和列交叉确定一个数据。
0
YYYYYYweoriusdilfj
YYYYYYweoriusdilfj
你可以试试在JSP里用 ${enum1['key1']['key2']},到controller里就是普通的HashMap发送和接收
0
公孙二狗
yunfound
yunfound
谢谢,已经解决。思路和你提供的这个差不多,使用ajax-json提交,毕竟form-data要拼装出双层map比较困难
返回顶部
顶部