AJax技术

ajax局部刷新 妙用Ajax技术实现局部刷新商品数量和总价实例代码(2)

字号+ 作者:H5之家 来源:H5之家 2016-12-27 16:01 我要评论( )

从后台返回的total是所有商品的总价格,所以在function中,首先我们根据id拿到所有商品小计的元素然后赋值为total即可,totalAll是加了运费的总价,后面那个toFixes(2)表示保留两位小数。然后再拿到单个商品小计的

  从后台返回的total是所有商品的总价格,所以在function中,首先我们根据id拿到所有商品小计的元素然后赋值为total即可,totalAll是加了运费的总价,后面那个toFixes(2)表示保留两位小数。然后再拿到单个商品小计的元素,计算一下单个商品的小计,这样前台页面在没有重新载入的情况下,更新了我们想要更新的部分,这就是Ajax强大的地方,这个和前面EasyUI一样的,EasyUI也是Ajax请求。

   好了,关于Ajax部分到这里就介绍完了,下面是后台的处理刚刚的请求,是针对自己这个项目的,用来记录项目进度用的。

3. 后台的更新

  刚刚Ajax请求的action是SortedAction中的updateSorder()方法,所以我们去SorderAction中完成updateSorder()方法:

@Controller@Scope("prototype")public class SorderAction extends BaseAction<Sorder> {public String addSorder() {//省略无关的代码……//根据商品编号更新商品数量public String updateSorder() {Forder forder = (Forder) session.get("forder");//更新购物项,传进来的product.id被封装到了model中forder = sorderService.updateSorder(model, forder);//计算新的总价格forder.setTotal(forderService.cluTotal(forder));session.put("forder", forder);//以流的形式返回新的总价格inputStream = new ByteArrayInputStream(forder.getTotal().toString().getBytes());return "stream";}}

相应的Service中的方法完善如下:

//SorderService接口public interface SorderService extends BaseService<Sorder> {//省去无关的代码……//根据商品id和数量更新商品数量public Forder updateSorder(Sorder sorder, Forder forder);}//SorderServiceImpl实现类@Service("sorderService")public class SorderServiceImpl extends BaseServiceImpl<Sorder> implementsSorderService {//省略无关的代码……@Overridepublic Forder updateSorder(Sorder sorder, Forder forder) {for(Sorder temp : forder.getSorders()) {if(temp.getProduct().getId().equals(sorder.getProduct().getId())) {temp.setNumber(sorder.getNumber());}}return forder;}}

最后struts.xml文件中的配置,是把”stream”配在了<global-result>里面,如下

<global-results><!-- 省去其他公共配置 --><result type="stream"><param>inputStream</param></result></global-results>

   好了,现在Action中计算出的总价格就可以通过流的形式传到前台了,Ajax就可以在它的function中接收到,放到total中了,跟前面的就接上了。

以上所述是小编给大家介绍的妙用Ajax技术局部刷新商品数量和总价实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 一个AJAX局部刷新的例子

    一个AJAX局部刷新的例子

    2016-01-17 11:53

网友点评
j