上周接受到一个任务:相关联的两个表的数据展示和输入保存。由于新手,在做这个任务的过程中碰到了众多的难题和bug,导致完成这个任务花费了4天的时间。现在在这里尽量回忆一下之前遇到的问题。公司的该项目是用ssm的框架。
1.首先这个是一个子表多条数据绑定一个主表的页面,页面展示和修改主表的一些信息,可以添加子表的多条数据。需要动态的生成子表数据的表单。这个与j在eesite中的主子表中的页面类似。那好吧!先拷过来用,有时间在研究这个功能的实现。
2.样式解决了,怎么绑定到自己的两张表的数据,根据模仿,以为天衣无缝。但结果总是令人崩溃的,数据始终出不来,这个问题卡了好久导致这一天就干了这点活,于是郁闷的下了班。第二天养好精神再来看问题,看了一会我拍肿了我的大腿。思来想去百般不得其解的错误往往是不经意的小错误:原因是在springmvc接收数据的时候${basetaskPhase}中的一些字母的大小写与后台放在model中的数据key不一样。以后一定要复制,要复制。。。。。。
3.数据可以展示到前端了,接下来就是做数据到后台。好吧,百度。。。。。百度来百度去,看的头昏了,需求不同啊,由于我要完成的是页面是通过一个页面jBOX弹出的页面,通过JBOX的按钮来完成数据到后台的传输,所以找了大半天,没有半点头绪。首先要解决的是从弹出页面的父页面找到弹出页面所需要的数据。好家伙!!! 对于我一个新手,前端的一些标签的处理与取数可整疯了我啊!我用的是一种简单粗暴的方法。$.find("iframe")[0]......等的方法,反正就是找到整个弹出页面再根据js的一些查找规则来找到相应的数据。
4.需要的数据得到了,我纠结于怎么把子表中的数据归于主表以便于在后台映射主表类的数据呢?百度啊,绞尽脑汁始终找不到解决方案啊。现在想想真是个大傻逼啊,我为什么要老纠结把数据放到一个主表的Controller中处理呢!我可以把分属于两张表的数据传到各自的Controller中啊。子表的多条数据我是封装成JSON数据来传输到后台。当然JSON的封装和解析也是一个点,不过这也不值得一提,网上很容易找到。不用Json,当然也可以通过多个url请求来达到保存多条数据的目的,不过这种方法会产生大量的请求,试想多人同时用这个功能会不会很容易出错呢。
5.数据到了后台,那就一一处理吧。主表类的数据好处理,springMVC已经为我们封装好了,不需要进行什么后台操作。子表的数据JSON解析也好说,不会的花多点时间罢了。任务完成了吧!原以为可以轻松的出口气了,但是console那跳动的error让我那在鼻口的气又吸了回去。什么情况。。。。。一脸懵逼:invlid property of bean class.........................无效属性什么鬼,通查一番。没问题啊!好吧,找来找去还是没问题啊。看看数据库,看到了神奇的东西--数据已经睡在了数据库中。心里一番安慰:毕竟功能已经实现。哈哈哈。数据保存说明是保存代码后的错误,后定睛一看,原来是跳转到list方法时出的错。原来list 的requestMapping(value="list")写成了(value={"list",{}}).whatever!