日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

实战SSM_O2O商铺_31【商品】商品添加之View层的实现

發(fā)布時(shí)間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实战SSM_O2O商铺_31【商品】商品添加之View层的实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 概述
  • productoperation.html
  • productoperation.js
  • 聯(lián)調(diào)
  • 檢查結(jié)果
    • 庫(kù)表數(shù)據(jù):
    • 磁盤上的圖片
  • Github地址

概述

在完成了 實(shí)戰(zhàn)SSM_O2O商鋪_30【商品】商品添加之Controller層的實(shí)現(xiàn)之后,我們繼續(xù)來(lái)實(shí)現(xiàn)View層的代碼部分。

商品添加和商品編輯使用的是同一個(gè)頁(yè)面,所以需要根據(jù)請(qǐng)求的url來(lái)判斷是編輯還是新增。

按照頁(yè)面原型和數(shù)據(jù)模型,商品添加頁(yè)面需要加載該shopId對(duì)應(yīng)的productCategory。 這個(gè)功能前面已經(jīng)開發(fā)好了,直接調(diào)用即可。


productoperation.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>商品操作</title> <meta name="viewport" content="initial-scale=1, maximum-scale=1"> <link rel="shortcut icon" href="/favicon.ico"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <link rel="stylesheet"href="//g.alicdn.com/msui/sm/0.6.2/css/sm.min.css"> <link rel="stylesheet"href="//g.alicdn.com/msui/sm/0.6.2/css/sm-extend.min.css"> <link rel="stylesheet" href="../resources/css/shop/productmanage.css"> </head> <body><header class="bar bar-nav"><h1 class="title">商品操作</h1></header><div class="content"><div class="list-block"><ul><li><div class="item-content"><div class="item-media"><i class="icon icon-form-name"></i></div><div class="item-inner"><div class="item-title label">商品名稱</div><div class="item-input"><input type="text" id="product-name" placeholder="商品名稱"></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">目錄</div><div class="item-input"><select id="product-category"></select></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">優(yōu)先級(jí)</div><div class="item-input"><input type="number" id="priority" placeholder="數(shù)字越大越排前面"></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">原價(jià)</div><div class="item-input"><input type="number" id="normal-price" placeholder="可選"></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">現(xiàn)價(jià)</div><div class="item-input"><input type="number" id="promotion-price" placeholder="可選"></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">縮略圖</div><div class="item-input"><input type="file" id="small-img"></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner detail-img-div"><div class="item-title label">詳情圖片</div><div class="item-input" id="detail-img"><input type="file" class="detail-img"><!-- <input type="file" class="detail-img" id="detail-img-1"><input type="file" class="detail-img" id="detail-img-2"> --></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><div class="item-title label">商品描述</div><div class="item-input"><textarea id="product-desc" placeholder="商品描述"></textarea></div></div></div></li><li><div class="item-content"><div class="item-media"><i class="icon icon-form-email"></i></div><div class="item-inner"><label for="j_captcha" class="item-title label">驗(yàn)證碼</label> <inputid="j_captcha" name="j_captcha" type="text"class="form-control in" placeholder="驗(yàn)證碼" /><div class="item-input"><img id="captcha_img" alt="點(diǎn)擊更換" title="點(diǎn)擊更換"onclick="changeVerifyCode(this)" src="../Kaptcha" /></div></div></div></li></ul></div><div class="content-block"><!-- 預(yù)留兩個(gè)按鈕 TODO --><div class="row"><div class="col-50"><a href="#"class="button button-big button-fill button-danger" id="back">返回商品管理</a></div><div class="col-50"><a href="#" class="button button-big button-fill" id="submit">提交</a></div></div></div></div><script type='text/javascript' src='//g.alicdn.com/sj/lib/zepto/zepto.min.js' charset='utf-8'></script><script type='text/javascript' src='//g.alicdn.com/msui/sm/0.6.2/js/sm.min.js' charset='utf-8'></script><script type='text/javascript' src='//g.alicdn.com/msui/sm/0.6.2/js/sm-extend.min.js' charset='utf-8'></script><!-- 引入自定義的JS --><script type='text/javascript' src='../resources/js/common/common.js' charset='utf-8'></script><script type='text/javascript' src='../resources/js/shop/productoperation.js' charset='utf-8'></script></body> </html>

productoperation.js

/*** 因?yàn)樯唐返奶砑雍途庉嫃?fù)用同一個(gè)頁(yè)面,所以需要根據(jù)url中的商品Id來(lái)判斷*/ $(function(){//通過(guò)url是否含有productId來(lái)判斷是添加商品還是編輯var productId = getQueryString('productId');// 標(biāo)示符 productId非空則為true即編輯,否則為添加商品var isEdit = productId ? true : false ;// 商品添加URLvar addProductURL = '/o2o/shopadmin/addproduct';// 商品編輯URL TODOvar editProductURL = '';// 獲取商品初始化信息的URL 根據(jù)頁(yè)面原型只需要獲取productCategory即可,后臺(tái)調(diào)用之前寫好的路由方法即可var initProductURL = '/o2o/shopadmin/getproductcategorybyshopId';// 通過(guò)標(biāo)示符,確定調(diào)用的方法if(isEdit){// 為true,則根據(jù)productId調(diào)用獲取product信息的方法 TODOgetProductInfoById(productId);}else{// 為false,則初始化新增product頁(yè)面getProductInitInfo();}/*** 始化新增product頁(yè)面* * 根據(jù)頁(yè)面原型和數(shù)據(jù)模型,需要加載該shop對(duì)應(yīng)的productCategory信息(shop信息從服務(wù)端session中獲取)*/function getProductInitInfo(){$.getJSON(initProductURL,function(data){if(data.success){// 設(shè)置product_categoryvar productCategoryList = data.data;var productCategoryTempHtml = '';productCategoryList.map(function(item, index) { // productCategoryTempHtml += '<option data-id="' // + item.productCategoryId + '">' + item.productCategoryName // + '</option>';productCategoryTempHtml += '<option data-value="'+ item.productCategoryId + '">'+ item.productCategoryName + '</option>';});$('#product-category').html(productCategoryTempHtml);}else{$.toast(data.errMsg)}});};/*** 點(diǎn)擊控件的最后一個(gè)且圖片數(shù)量小于6個(gè)的時(shí)候,生成一個(gè)選擇框*/$('.detail-img-div').on('change', '.detail-img:last-child', function() {if ($('.detail-img').length < 6) {$('#detail-img').append('<input type="file" class="detail-img">');}});/*** 提交按鈕的響應(yīng)時(shí)間,分別對(duì)商品添加和商品編輯做不同的相應(yīng)*/$('#submit').click(function(){// 創(chuàng)建商品Json對(duì)象,并從表單對(duì)象中獲取對(duì)應(yīng)的屬性值var product = {};// 如果是編輯操作,需要傳入productIdif(isEdit){product.productId = productId;}product.productName = $('#product-name').val();product.productDesc = $('#product-desc').val();// 獲取商品的特定目錄值product.productCategory = {productCategoryId : $('#product-category').find('option').not(function() {return !this.selected;}).data('value')};product.priority = $('#priority').val();product.normalPrice = $('#normal-price').val();product.promotionPrice = $('#promotion-price').val();// 生成表單對(duì)象用于接收參數(shù)并傳遞給后臺(tái)var formData = new FormData();// 縮略圖 (只有一張),獲取縮略圖的文件流var thumbnail = $('#small-img')[0].files[0];formData.append('thumbnail',thumbnail);// 圖片詳情$('.detail-img').map(function(index, item) {// 判斷該控件是否已經(jīng)選擇了文件 if ($('.detail-img')[index].files.length > 0) {// 將第i個(gè)文件流賦值給key為productImgi的表單鍵值對(duì)里formData.append('productImg' + index,$('.detail-img')[index].files[0]);}});// 將product 轉(zhuǎn)換為json ,添加到forDataformData.append('productStr', JSON.stringify(product));// 獲取表單中的驗(yàn)證碼var verifyCodeActual = $('#j_captcha').val();if (!verifyCodeActual) {$.toast('請(qǐng)輸入驗(yàn)證碼!');return;}formData.append("verifyCodeActual", verifyCodeActual);// 使用ajax異步提交$.ajax({url: isEdit?editProductURL:addProductURL,type: 'POST' ,data : formData,contentType : false,processData : false,cache : false,success: function(){if (data.success) {$.toast('提交成功!');$('#captcha_img').click();} else {$.toast('提交失敗!');$('#captcha_img').click();}}});}); });

聯(lián)調(diào)

前端加入斷點(diǎn),逐步調(diào)測(cè),檢查前端獲取的數(shù)據(jù)的準(zhǔn)確性

后端Controller層加入斷點(diǎn),待前端無(wú)誤后進(jìn)入Controller逐步調(diào)測(cè),觀察數(shù)據(jù),確保結(jié)果正確。


檢查結(jié)果

庫(kù)表數(shù)據(jù):

select * from tb_product where product_id = 7; select * from tb_product_img where product_id = 7;

我這里生成的product_id為7,具體視實(shí)際情況


磁盤上的圖片

核對(duì)下圖片是否和上傳的圖片一致以及圖片名稱是否和數(shù)據(jù)庫(kù)中的記錄匹配。


Github地址

代碼地址: https://github.com/yangshangwei/o2o

總結(jié)

以上是生活随笔為你收集整理的实战SSM_O2O商铺_31【商品】商品添加之View层的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人射人人插 | 草莓视频成人在线 | 色综合一区| 91视频福利 | 黄页视频在线免费观看 | 精品国产无码在线 | 九九在线观看免费高清版 | 精品亚洲中文字幕 | 成人深夜福利在线观看 | 网友自拍av | 亚洲人成在线免费观看 | 欧美二区三区 | 成人网视频 | 亚洲国产成人精品女人 | 精品无码国产一区二区三区51安 | 久久久久久国产精品三区 | 久久久久久久偷拍 | 一区在线播放 | 欧美中文网 | 一级a性色生活片久久毛片 爱爱高潮视频 | 久久人人爽人人爽人人 | 不卡视频在线观看免费 | 少妇无码一区二区三区免费 | 黑名单上的人全集免费观看 | 福利视频黄色 | 里番acg★同人里番本子大全 | 精品国产久 | 激情婷婷综合网 | 国内自拍第三页 | 女人脱下裤子让男人桶 | 欧美一区二区三区在线观看 | 欧美精品一二三区 | 久久偷看各类女兵18女厕嘘嘘 | 国产精品福利一区二区三区 | 日本一区二区三区四区在线观看 | 日韩精品在线不卡 | 香蕉综合视频 | 在线观看中文字幕一区二区 | 一级免费黄色片 | 性色在线视频 | 九九视频网 | 国产一区二区免费看 | 丁香花高清在线 | 国产学生美女无遮拦高潮视频 | 久久精品久久99 | xxxx96| 在线免费观看日本 | 西方裸体在线观看 | 香蕉视频首页 | 美女校花脱精光 | 欧美激情亚洲色图 | 欧美丰满美乳xxⅹ高潮www | 二区在线播放 | 欧美一二 | 极品尤物一区二区三区 | 131mm少妇做爰视频 | 免费成人在线网站 | 亚洲一区二区三区在线视频观看 | 日本熟女毛茸茸 | 老妇裸体性激交老太视频 | 欧美日韩黑人 | 色播视频在线观看 | 久婷婷| 国产亚洲精品美女久久久 | 成人在线观看18 | 国产一区在线免费观看 | 亚洲欧美中文字幕5发布 | 国产91精品欧美 | 欧美一卡二卡在线 | 69视频一区 | 欧美精品一区二区在线观看 | 日韩特级片 | 激情欧美一区二区三区 | 黄色成人免费网站 | 精品亚洲一区二区三区四区五区 | www.x日本 | 无码人妻久久一区二区三区 | 69xx视频在线观看 | 欧美色婷婷| 伊人天堂网 | 波多野结衣久久 | 刘亦菲毛片一区二区三区 | 久久久久久999 | 善良的少妇伦理bd中字 | 黑人巨大xxxxx性猛交 | 国产乱码精品1区2区3区 | 五月婷婷操 | 男人天堂2024 | 成人黄色片视频 | 91久久免费 | 精品无码国产污污污免费网站 | 一区二区三区在线看 | 97影院在线午夜 | 红色假期黑色婚礼2 | 亚洲黄网在线观看 | 97视频免费在线观看 | 国产性生活一级片 | 淫片一级国产 | 午夜在线视频 |