java 修改商品如何实现的_Javaweb-案例练习-5-商品数量修改和合计金额实现
原標(biāo)題:Javaweb-案例練習(xí)-5-商品數(shù)量修改和合計金額實現(xiàn)
商品數(shù)量和小計修改實現(xiàn)
前面一篇完成了添加購物的功能,這篇來完善購物車頁面上,修改商品數(shù)量和小計這兩處地方的代碼。
需求
我們的需求如下圖
購物車頁面,每一個商品數(shù)量這列的- + 可以點擊,然后小計這列金額跟隨變化。
需求簡單分析
下面來簡單看看這個修改思路:
1. 在- +上寫onclick事件,調(diào)用一個js方法,例如changeNum(id,num)
2. 跳轉(zhuǎn)到一個servlet去處理這個減一還是加一
3. 把金額回顯到小計這一列。
在servlet方法中,其中一個參數(shù)肯定是Book.id, 第二個參數(shù)是購買數(shù)量num,這個num也需要從session中拿到。
修改cart.jsp
在數(shù)量這個 +控件,添加一個onclick事件,調(diào)用js方法changeNum(id),在方法中changeNum(),跳轉(zhuǎn)到一個servlet去處理。
新建一個servlet
先創(chuàng)建一個ChangeNumServlet.java, 完整代碼如下
部署測試
接下來進(jìn)行部署到tomcat,重啟服務(wù),點擊- +看看能不能修改數(shù)量
到這里,說明修改數(shù)量-+這兩個控件代碼沒問題,接下來寫小計中代碼。
小計金額代碼實現(xiàn)
小計金額需要根據(jù)數(shù)量和價格進(jìn)行變動,這里價格是固定的,數(shù)量是變化的。很簡單就是數(shù)量乘價格就是小計的金額。
保存,刷新購物車頁面
這樣看起來沒問題,但是有邊界問題,我們沒有考慮到。
第一個問題,數(shù)量當(dāng)前可以是負(fù)數(shù)
第二個邊界,數(shù)量可以大于庫存
解決商品數(shù)量邊界問題
在cart.jsp中的changeNum(), 我們還需要把庫存這個變量作為參數(shù)傳入,然后寫兩個if判斷,分別判斷商品數(shù)量小于1和商品數(shù)量大于庫存的情況。
在Servlet中需要處理num=0的情況,也就是從cart中移除這個商品。這個代碼,也會在后面點擊X這個從購物車刪除商品控件上會用到。
部署看看,點擊商品數(shù)量為1的時候,再點擊減號,看看會不會彈出提示。
點擊OK,看看會不會從購物車頁面刪除這本書。
刪除商品控件代碼實現(xiàn)
頁面上還有這個紅色X,點擊可以刪除商品。這個很簡單,就是我地址傳過去,讓num=0,這樣后臺servlet就會處理,和上面邏輯一樣。
在cart.jsp中找到這個紅色X,大概在93行位置跳轉(zhuǎn)地址改成這樣。
style="color:#FF0000; font-weight:bold">X
保存代碼,可以測試以下,點擊就直接刪除,最好JS代碼提示以下是否確認(rèn)刪除。
解決合計金額
每個商品的小計計算出來了,現(xiàn)在我們來解決以下合計金額。
重點看以下三部分代碼
第一部分,定義一個sum變量,在foreach之前定義,初始化值為0
第二部分,在foreach結(jié)束前,統(tǒng)計sum的值
第三部分,合計這塊直接引用${sum},得到購物車全部商品合計金額。
合計:??${sum}元
這個文件完整代碼如下
測試一下,看看合計效果
責(zé)任編輯:
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java 修改商品如何实现的_Javaweb-案例练习-5-商品数量修改和合计金额实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机和java_java和单片机哪个难
- 下一篇: java中日期比较方法_在java中进行