六月实习开发见闻

上个星期天天九点半之后离开公司,都是自己白天没有处理好问题的结果,对所学所用都一知半解,难免对问题的理解不够深入,遇到问题问下同事,自己百度。知道怎么解决但是不知道原因。

  现在仔细想想遇到的问题其实也不是特别深奥,关于JS控制的错误,Javascript 和jQuery出现的错误。之前对JS没有好好学习,是在学校欠下的债,现在要用更多的时间补回来。就前两天有个JS问题是页面的table 添加删除rows造成的,删除rows重新对序号排序,然后传递到后台的Action,因为开始开发之前对整个程序的认识不清楚,对业务也不了解,需求文档也没有写,只能按照之前的页面来写,幸好当时有好的页面已经完成,就复制粘贴过来了,结果悲剧的事情一个接一个开始发生了,之前的数据库和这次的数据库设计不一样,之前的数据库根本就不是关系型数据库。。。。。所以我只把页面设计保存下来了,页面的java脚本都换成List的操作了,但是之前Map的操作都是从1开始,现在的List都是从0开始,就是这个1的差别,让JS出了很多错。然后按照各项数据-1的操作,完全调不好页面。各行数据Id 和name的更改也完成不了。后台数据库操作也不断的报错,不是空指针就是无效类型,后来实在拖进度了,主管也看不下去了就开始帮我调试,主管看到这个页面的时候就说这是什么意思呢,感觉逻辑是不是被我写复杂了,我当时想,逻辑很简单的啊,就是添加删除行的时候自动调整序号啊,并把id和name 一起都更改过来,id在js中验证数据格式,name在后台读取数据使用。。。

  关键是之前课本上把id 和name都定义的一样,比如说id="Student_id" 那么name也一定是Student_id。然后读取的时候都按照一个名字读取。我之前甚至不知道这个request.getParameter("Student_id")是按照id取值还是按照name 取值,现在知道了,是按照name 取值。

还有 ,之前我连request.getAttribute() 和  request.getParameter() 的区别,实在是惭愧,为什么之前我注意不到呢。

回到主题,关键就是在这个name和id为什么要一样呢,现在我也不明白为什么课本上就一定要定义为一样的呢。很多时候程序里面故意不让id和name定义一样。因为JS里面的jQuery$("1")会先按照ID查找,如果找不到Id为1的对象,就开始查找name为1的对象,所以操作很容易改变name属性,改变的name属性就会造成后台action里面的getParameter操作。所以尽量不要把id和name定义成一样。

 还有就是。如果前台页面的table信息有很多的rows,尽量可能的把相同的字段的name属性定义为一样的。比如都是student.sex属性。就把name 统一定义为"sex"属性,id="kk"。这样在页面提交的时候。系统会自动把name属性相同的参数定义为一个List参数。可以String [] sex = request.getParameter("sex");这样一样可以得到自己想要的值。


而且前台页面的JS的操作$('kk')就不会随便更改name了。

总之这都是小的问题,关键是处理问题的逻辑。一定要简单清晰。不要一味的照抄别人的东西。要是别人的东西本来就是错的或者是性能不高怎么办,要懂得自己思考。自己解决问题。刚开始开发的时候要注重自己思考。如果一开始就复制粘贴。那么就成了一个机器。机器是不能思考的。对一个程序员来说真是太可怕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值