原标题:Javaweb-案例练习-5-商品数量修改和合计金额实现

商品数量和小计修改实现

前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码。

需求

我们的需求如下图

购物车页面,每一个商品数量这列的- + 可以点击,然后小计这列金额跟随变化。

需求简单分析

下面来简单看看这个修改思路:

1. 在- +上写onclick事件,调用一个js方法,例如changeNum(id,num)

2. 跳转到一个servlet去处理这个减一还是加一

3. 把金额回显到小计这一列。

在servlet方法中,其中一个参数肯定是Book.id, 第二个参数是购买数量num,这个num也需要从session中拿到。

修改cart.jsp

在数量这个 +控件,添加一个onclick事件,调用js方法changeNum(id),在方法中changeNum(),跳转到一个servlet去处理。

新建一个servlet

先创建一个ChangeNumServlet.java, 完整代码如下

部署测试

接下来进行部署到tomcat,重启服务,点击- +看看能不能修改数量

到这里,说明修改数量-+这两个控件代码没问题,接下来写小计中代码。

小计金额代码实现

小计金额需要根据数量和价格进行变动,这里价格是固定的,数量是变化的。很简单就是数量乘价格就是小计的金额。

保存,刷新购物车页面

这样看起来没问题,但是有边界问题,我们没有考虑到。

第一个问题,数量当前可以是负数

第二个边界,数量可以大于库存

解决商品数量边界问题

在cart.jsp中的changeNum(), 我们还需要把库存这个变量作为参数传入,然后写两个if判断,分别判断商品数量小于1和商品数量大于库存的情况。

在Servlet中需要处理num=0的情况,也就是从cart中移除这个商品。这个代码,也会在后面点击X这个从购物车删除商品控件上会用到。

部署看看,点击商品数量为1的时候,再点击减号,看看会不会弹出提示。

点击OK,看看会不会从购物车页面删除这本书。

删除商品控件代码实现

页面上还有这个红色X,点击可以删除商品。这个很简单,就是我地址传过去,让num=0,这样后台servlet就会处理,和上面逻辑一样。

在cart.jsp中找到这个红色X,大概在93行位置跳转地址改成这样。

style="color:#FF0000; font-weight:bold">X

保存代码,可以测试以下,点击就直接删除,最好JS代码提示以下是否确认删除。

解决合计金额

每个商品的小计计算出来了,现在我们来解决以下合计金额。

重点看以下三部分代码

第一部分,定义一个sum变量,在foreach之前定义,初始化值为0

第二部分,在foreach结束前,统计sum的值

第三部分,合计这块直接引用${sum},得到购物车全部商品合计金额。

合计:  ${sum}元

这个文件完整代码如下

测试一下,看看合计效果

责任编辑:

java 修改商品如何实现的_Javaweb-案例练习-5-商品数量修改和合计金额实现相关推荐

  1. Java中商品价格代码怎么写_Javaweb-案例练习-5-商品数量修改和合计金额实现

    Javaweb-案例练习-5-商品数量修改和合计金额实现 凯哥java 凯哥java 商品数量和小计修改实现 前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码. ...

  2. jQuery 内容文本值|| 案例:购物车案例模块-增减商品数量 || 案例:购物车案例模块-修改商品小计

    jQuery 内容文本值 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  3. Java学习之综合案例——水果超市商品管理系统

    案例介绍: 水果超市管理系统包括两个界面:系统欢迎界面和超市货物管理界面,在系统欢迎界面中,通过单击"进入系统"按钮,进入超市货物管理界面.在超市货物管理界面中,可以对水果信息实现 ...

  4. 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口

    1.首先我们需要知道,接口是什么? 接口是后端为前端提供的数据--动态资源:Node.js通过每一个路由就可以实现接口 2.RESTful接口:是一种接口的架构风格 1.请求的URL(资源) 在资源前 ...

  5. Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略

    Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...

  6. JAVA使用web3j开发以太坊实战案例

    JAVA使用web3j开发以太坊实战案例 必读 1.前言 2.基础(必看) 3.web3j引入 4.创建账户(离线创建) 5.geth节点搭建.基本使用及一般问题 6.常量类 后面内容都要用到(必备! ...

  7. java 常见几种发送http请求案例

    java 常见几种发送http请求案例 直接换成CloseableHttpClient还不行,需要这样使用CloseableHttpClient httpClient = HttpClientBuil ...

  8. Java实例开发教程:SpringBoot开发案例

    最近在做邮件发送的服务,正常来说SpringBoot整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务. 单实例 首先我们来看下单 ...

  9. java 解析/操作 xml 几种常用方式 xml的增加/删除/修改

    java 解析/操作 xml 几种常用方式 xml的增加/删除/修改 首先,我们先介绍几种常用的xml解析器. 1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方 ...

最新文章

  1. 服务器硬盘如何增加分区,服务器硬盘分区方法是什么?
  2. 推荐几个9月爆火的 GitHub 电商项目 赶紧收藏
  3. 转录组分析_高级转录组分析和R数据可视化
  4. TSP问题遗传算法通用Matlab程序
  5. TF之LSTM:利用LSTM算法对Boston(波士顿房价)数据集【13+1,506】进行回归预测(房价预测)
  6. 周报速递丨百度与美团等互联互通;京东Shopify达成合作
  7. Spring Cloud OAuth2 实现用户认证及单点登录
  8. 新用户时代最大的机会就是分享经济
  9. 使用submit异步提交,阻止表单默认提交
  10. SLAM学习笔记-------------(12)建图
  11. 林毅夫1.7万字长文:我的13个经济学新见解
  12. Servlet原理图
  13. 小程序模仿通讯录制作
  14. 搜索引擎技术 —— 网络爬虫
  15. 计算机中数字信号定义,数字信号处理
  16. 计算机科学与技术反思录
  17. clone别人远程仓库的代码,运行npm install报错npm ERR! Maximum call stack size exceeded
  18. 华硕AC86U路由器最佳设置(解决5G信号断流和米家设备掉线的问题)
  19. Resetting a lost Admin password
  20. Eclipse安装内存分析工具(Memory Analyzer)

热门文章

  1. java socket输入流_java – Socket输入流挂在最后读取.最好的办法呢?
  2. python用tsne降维_哈工大硕士实现了 11 种经典数据降维算法,源代码库已开放
  3. docker mysql 日志_docker中将MySQL运行在容器中失败提示“ InnoDB : Error 22 with aio_write”的解决办法...
  4. docker mysql编辑器_docker官方mysql镜像自定义配置详解
  5. 过河问题matlab建模,matlab三对夫妻过河问题
  6. python异步编程视频_asyncio异步编程【含视频教程】
  7. 配置ssd为缓存_撕下贴牌的画皮!快速确定SSD性能等级,关键在这3步
  8. php视频生成指定帧图片,python3.5 cv2 获取视频特定帧生成jpg图片
  9. vmlinux 反汇编_ARM Linux内核驱动异常定位方法分析--反汇编方式
  10. 多个安卓设备投屏到电脑_辅助多手机同时直播控场 TotalControl手机投屏软件