【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
目录(?)[+]
昨天把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部更新相应的总价的功能,大家都知道这得用Ajax实现,我之前也没学Ajax,刚好借助这个小功能,去简单学习一下Ajax的知识。
先看一下页面中的情况: 功能如上,在没有Ajax之前,一般都是根据用户修改的值去找Action,然后返回新的jsp页面重新加载整个页面,完成数字的更新。但是有了Ajax技术后,我们可以利用Ajax技术局部刷新要改变的地方,而不是重新加载整个页面。首先看一下上图对应的jsp部分的代码:
看着貌似很多的样子,其实功能很简单,就是从域中拿出相应的数据显示出来而已,我们现在要实现上面描述的功能的话,先来分析一下思路:
分析完了流程,接下来我们就着手去实现了,首先把js部分的代码贴在这,然后我们根据上面的流程详细分析:
2.1 注册事件我们看上面的代码可知,注册事件首先要定位到这个文本框,这里是通过类选择器来定位的,因为是文本框,所以用change()来注册该事件,然后在里面定义一个function()函数来处理该事件。 2.2 判断数据合法性 好了,注册好了事件后,我们首先要对用户输入的数进行合法性判断,因为用户可能输入了0或者负数,可能输入了小数,甚至输入了字母或其他字符等等。所以要进行验证。 2.3 发送Ajax请求 如果数据是合法的,我们获取该数据后,就可以向后台发送Ajax请求了,我们需要考虑一个问题:需要传哪些参数呢?首先用户想要更新数量,毫无疑问,用户输入的数字肯定要传过去,其次到底传哪个商品呢?也就是说我们需要获取用户想要修改的商品的id号,知道了要传的参数后,我们想办法获取id号即可。
从后台返回的total是所有商品的总价格,所以在function中,首先我们根据id拿到所有商品小计的元素然后赋值为total即可,totalAll是加了运费的总价,后面那个
刚刚Ajax请求的action是SortedAction中的
相应的Service中的方法完善如下:
最后struts.xml文件中的配置,是把”stream”配在了
好了,现在Action中计算出的总价格就可以通过流的形式传到前台了,Ajax就可以在它的function中接收到,放到total中了,跟前面的就接上了。 相关阅读:http://blog.csdn.net/column/details/str2hiberspring.html —–乐于分享,共同进步! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 如何在sqlite where子句中使用Levenshtei
- xcode – Mac – 添加CoreGraphics.framework,用于C头中的C
- [CORS:跨域资源共享] 同源策略与JSONP
- c# – 我可以通过反射/诊断从方法内获取调用实例吗?
- vb与c#语法结构不同简述
- cocosdx 关于CCSpriteFrameCache::sharedSpriteFrameCache(
- XML XPATH XSL之间的关系
- 如何使用Log4Net实用程序使用c#登录数据库
- ruby-on-rails – 如何通过cron运行rake任务?
- c# – 如何检查NotifyIcon是否被隐藏