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

凯哥java 凯哥java

商品数量和小计修改实现

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

需求

我们的需求如下图

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

需求简单分析

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

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

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

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

在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-商品数量修改和合计金额实现 商品数量和小计修改实现 前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码. 需求 我们的需求如 ...

  2. html中的保存功能代码怎么写,java保存html代码怎么写

    java保存html代码怎么写 [2021-01-31 03:29:24]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  3. Java中普通代码块,构造代码块,静态代码块区别

    Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...

  4. Java中static代码块,main函数,构造函数运行顺序

    1.Java中static代码块,main函数,构造函数运行顺序如下: 答:static代码块是主动执行的,因此static代码块先执行,然后是执行构造函数,最后是Main函数. 如下例子: publ ...

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

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

  6. java中普通代码块,构造代码块,静态代码块的区别及代码示例

    本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...

  7. java中静态代码块的用法 static用法详解(转)

    (一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程 ...

  8. Java中的代码点和代码单元

    为什么80%的码农都做不了架构师?>>>    这篇文章讲的很细,但是对于初学者也很难理解,在后面的笔记中,我会陈述自己的简单理解. 摘要 本文介绍 Java 平台支持增补字符的方式 ...

  9. 关于java中普通代码块、构造代码块与静态代码块

    1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...

最新文章

  1. RxJava 教程第一部分:为何使用RxJava
  2. Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...
  3. Git之深入解析工作流程、常用命令与Reset模式分析
  4. 《城市建筑美学》读书笔记
  5. .net 动软代码生成器
  6. beast php,windows php-beast 安装
  7. Mysql学习总结(38)——21条MySql性能优化经验
  8. Python为你打开一扇门
  9. js获取窗口宽度高度
  10. windows 安装 telnet 工具
  11. 1招提升Java单元测试ROI
  12. Navicat工具中数据库导入导出
  13. mscorsvw.exe 关闭方法
  14. codeforces_946D_Timetable(分组背包)
  15. [2017BUAA软工助教]博客格式的详细说明
  16. AspectJ in Action 第2版 中文版 简明的内容
  17. Thingworx 调用外部接口
  18. 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模
  19. node.js map 的用法
  20. Gogs生产环境搭建和数据迁移指南

热门文章

  1. 餐饮收银软件的O2O转型史
  2. Curator——Service Discovery
  3. menuconfig 配置选项详解
  4. 什么是搬砖套利赚钱模式?
  5. html方法标签不起作用,Angular中innerHTML标签的样式不起作用的原因解析
  6. 完美国际修改服务器经验倍率,吧主勿删,代码修改教程
  7. 模拟实验室合成器插件-Arturia Analog Lab v5.2.0 WiN
  8. 听云server探针安装历程
  9. 虚拟机Terminator终端终结者安装教程
  10. 超级表格超好用的4个功能,你知道其中几个?