Java中商品价格代码怎么写_Javaweb-案例练习-5-商品数量修改和合计金额实现
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-商品数量修改和合计金额实现相关推荐
- java 修改商品如何实现的_Javaweb-案例练习-5-商品数量修改和合计金额实现
原标题:Javaweb-案例练习-5-商品数量修改和合计金额实现 商品数量和小计修改实现 前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码. 需求 我们的需求如 ...
- html中的保存功能代码怎么写,java保存html代码怎么写
java保存html代码怎么写 [2021-01-31 03:29:24] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...
- Java中普通代码块,构造代码块,静态代码块区别
Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...
- Java中static代码块,main函数,构造函数运行顺序
1.Java中static代码块,main函数,构造函数运行顺序如下: 答:static代码块是主动执行的,因此static代码块先执行,然后是执行构造函数,最后是Main函数. 如下例子: publ ...
- jQuery 内容文本值|| 案例:购物车案例模块-增减商品数量 || 案例:购物车案例模块-修改商品小计
jQuery 内容文本值 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...
- java中普通代码块,构造代码块,静态代码块的区别及代码示例
本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程 ...
- Java中的代码点和代码单元
为什么80%的码农都做不了架构师?>>> 这篇文章讲的很细,但是对于初学者也很难理解,在后面的笔记中,我会陈述自己的简单理解. 摘要 本文介绍 Java 平台支持增补字符的方式 ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...
最新文章
- RxJava 教程第一部分:为何使用RxJava
- Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...
- Git之深入解析工作流程、常用命令与Reset模式分析
- 《城市建筑美学》读书笔记
- .net 动软代码生成器
- beast php,windows php-beast 安装
- Mysql学习总结(38)——21条MySql性能优化经验
- Python为你打开一扇门
- js获取窗口宽度高度
- windows 安装 telnet 工具
- 1招提升Java单元测试ROI
- Navicat工具中数据库导入导出
- mscorsvw.exe 关闭方法
- codeforces_946D_Timetable(分组背包)
- [2017BUAA软工助教]博客格式的详细说明
- AspectJ in Action 第2版 中文版 简明的内容
- Thingworx 调用外部接口
- 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模
- node.js map 的用法
- Gogs生产环境搭建和数据迁移指南