how2j.cn

下载区
文件名 文件大小
请先登录 3m
增值内容 3m
3m
步骤 1 : 先运行,看到效果,再学习   
步骤 2 : 模仿和排错   
步骤 3 : 页面截图   
步骤 4 : PropertyValueServlet   
步骤 5 : web.xml   
步骤 6 : editProductValue.jsp   
步骤 7 : 编辑功能讲解   
步骤 8 : 修改功能讲解   
步骤 9 : 删除,增加功能不需要   

步骤 1 :

先运行,看到效果,再学习

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
页面截图
步骤 4 :

PropertyValueServlet

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package tmall.servlet; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import tmall.bean.Category; import tmall.bean.Product; import tmall.bean.Property; import tmall.bean.PropertyValue; import tmall.util.Page; public class ProductServlet extends BaseBackServlet { public String add(HttpServletRequest request, HttpServletResponse response, Page page) { int cid = Integer.parseInt(request.getParameter("cid")); Category c = categoryDAO.get(cid); String name= request.getParameter("name"); String subTitle= request.getParameter("subTitle"); float orignalPrice = Float.parseFloat(request.getParameter("orignalPrice")); float promotePrice = Float.parseFloat(request.getParameter("promotePrice")); int stock = Integer.parseInt(request.getParameter("stock")); Product p = new Product(); p.setCategory(c); p.setName(name); p.setSubTitle(subTitle); p.setOrignalPrice(orignalPrice); p.setPromotePrice(promotePrice); p.setStock(stock); productDAO.add(p); return "@admin_product_list?cid="+cid; } public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); productDAO.delete(id); return "@admin_product_list?cid="+p.getCategory().getId(); } public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); request.setAttribute("p", p); return "admin/editProduct.jsp"; } public String editPropertyValue(HttpServletRequest request, HttpServletResponse response, Page page) { int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); request.setAttribute("p", p); propertyValueDAO.init(p); List<PropertyValue> pvs = propertyValueDAO.list(p.getId()); request.setAttribute("pvs", pvs); return "admin/editProductValue.jsp"; } public String updatePropertyValue(HttpServletRequest request, HttpServletResponse response, Page page) { int pvid = Integer.parseInt(request.getParameter("pvid")); String value = request.getParameter("value"); PropertyValue pv =propertyValueDAO.get(pvid); pv.setValue(value); propertyValueDAO.update(pv); return "%success"; } public String update(HttpServletRequest request, HttpServletResponse response, Page page) { int cid = Integer.parseInt(request.getParameter("cid")); Category c = categoryDAO.get(cid); int id = Integer.parseInt(request.getParameter("id")); int stock = Integer.parseInt(request.getParameter("stock")); float orignalPrice = Float.parseFloat(request.getParameter("orignalPrice")); float promotePrice = Float.parseFloat(request.getParameter("promotePrice")); String subTitle= request.getParameter("subTitle"); String name= request.getParameter("name"); Product p = new Product(); p.setName(name); p.setSubTitle(subTitle); p.setOrignalPrice(orignalPrice); p.setPromotePrice(promotePrice); p.setStock(stock); p.setId(id); p.setCategory(c); productDAO.update(p); return "@admin_product_list?cid="+p.getCategory().getId(); } public String list(HttpServletRequest request, HttpServletResponse response, Page page) { int cid = Integer.parseInt(request.getParameter("cid")); Category c = categoryDAO.get(cid); List<Product> ps = productDAO.list(cid, page.getStart(),page.getCount()); int total = productDAO.getTotal(cid); page.setTotal(total); page.setParam("&cid="+c.getId()); request.setAttribute("ps", ps); request.setAttribute("c", c); request.setAttribute("page", page); return "admin/listProduct.jsp"; } }
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
步骤 6 :

editProductValue.jsp

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@include file="../include/admin/adminHeader.jsp"%> <%@include file="../include/admin/adminNavigator.jsp"%> <title>编辑产品属性值</title> <script> $(function() { $("input.pvValue").keyup(function(){ var value = $(this).val(); var page = "admin_product_updatePropertyValue"; var pvid = $(this).attr("pvid"); var parentSpan = $(this).parent("span"); parentSpan.css("border","1px solid yellow"); $.post( page, {"value":value,"pvid":pvid}, function(result){ if("success"==result) parentSpan.css("border","1px solid green"); else parentSpan.css("border","1px solid red"); } ); }); }); </script> <div class="workingArea"> <ol class="breadcrumb"> <li><a href="admin_category_list">所有分类</a></li> <li><a href="admin_product_list?cid=${p.category.id}">${p.category.name}</a></li> <li class="active">${p.name}</li> <li class="active">编辑产品属性</li> </ol> <div class="editPVDiv"> <c:forEach items="${pvs}" var="pv"> <div class="eachPV"> <span class="pvName" >${pv.property.name}</span> <span class="pvValue"><input class="pvValue" pvid="${pv.id}" type="text" value="${pv.value}"></span> </div> </c:forEach> <div style="clear:both"></div> </div> </div>
步骤 7 :

编辑功能讲解

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
编辑功能讲解
public String editPropertyValue(HttpServletRequest request, HttpServletResponse response, Page page) { int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); request.setAttribute("p", p); List<Property> pts= propertyDAO.list(p.getCategory().getId()); propertyValueDAO.init(p); List<PropertyValue> pvs = propertyValueDAO.list(p.getId()); request.setAttribute("pvs", pvs); return "admin/editProductValue.jsp"; }
<c:forEach items="${pvs}" var="pv"> <div class="eachPV"> <span class="pvName" >${pv.property.name}</span> <span class="pvValue"><input class="pvValue" pvid="${pv.id}" type="text" value="${pv.value}"></span> </div> </c:forEach>
步骤 8 :

修改功能讲解

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
修改功能讲解
$("input.pvValue").keyup(function(){ var value = $(this).val(); var page = "admin_product_updatePropertyValue"; var pvid = $(this).attr("pvid"); var parentSpan = $(this).parent("span"); parentSpan.css("border","1px solid yellow"); $.post( page, {"value":value,"pvid":pvid}, function(result){ if("success"==result) parentSpan.css("border","1px solid green"); else parentSpan.css("border","1px solid red"); } ); });
public String updatePropertyValue(HttpServletRequest request, HttpServletResponse response, Page page) { int pvid = Integer.parseInt(request.getParameter("pvid")); String value = request.getParameter("value"); PropertyValue pv =propertyValueDAO.get(pvid); pv.setValue(value); propertyValueDAO.update(pv); return "%success"; }
步骤 9 :

删除,增加功能不需要

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2021-07-27 关于外键约束
飞鸟

使用外键约束之后,比如要删除某个product,删不掉,因为product是productImage表、propertyValue表、等表的外键、也就是说当要删除某个product表,就要先删除与它关联的其他表中的数据,这样是不是会过于耦合?有没有什么好的解决方法




2 个答案

Pipi_pika
答案时间:2021-11-11
项目运行起来 有买家购买产品评论之后,这时想删除产品 必须先删除product表作为外键的其他表:propertyvalue表,productimage表,orderitem表,review表里相应的数据。而订单项作为重要数据是不能删除的,所以导致产品也无法删除。我认为下架产品的方法 可能就是修改产品信息标注为下架。 能删除产品的契机就在加入该购物车/产生购买之前,这时可以删除产品(先删除它的propertyvalue和productimage)

how2j
答案时间:2021-08-21
数据安全性和操作便利性之间只能二选一呢



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-12-29 请教下,在某个Category分类下,每个产品的各个property和propertyValue是怎么产生对应关系的,看不明白...
小笨猪学JAVA

如题,谁高抬贵手帮忙解答下...




2 个答案

how2j
答案时间:2021-01-01
是的呢~

小笨猪学JAVA
答案时间:2020-12-30
明白了!初次设置 propertyValue值通过: propertyValueDAO.init(p); 实现setProperty()方法,使属性值propertyValue找到其对应的属性property;



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-02-06 请问步骤8的修改功能那里的ajax的判断返回值result是否为"success",那么"return success"这行代码是在写在哪个函数里的呢?
2019-12-13 输入框样式问题
2019-12-03 产品下面存在属性值,也可以直接删除,并在数据库中产生数据垃圾(属性值无法一同擦除)。


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 16 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-天猫整站J2EE-产品属性值设置 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图