how2j.cn

-->
下载区
文件名 文件大小
请先登录 1m
增值内容 1m
1m

解压rar如果失败,请用5.21版本或者更高版本的winrar

点击下载 winrar5.21
步骤 1 : 先运行,看到效果,再学习   
步骤 2 : 模仿和排错   
步骤 3 : 页面截图   
步骤 4 : PropertyValue   
步骤 5 : PropertyValueService   
步骤 6 : PropertyValueServiceImpl   
步骤 7 : PropertyValueController   
步骤 8 : editPropertyValue.jsp   
步骤 9 : 编辑功能讲解   
步骤 10 : 修改功能讲解   
步骤 11 : 删除,增加功能不需要   

步骤 1 :

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

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
页面截图
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.pojo; public class PropertyValue { private Integer id; private Integer pid; private Integer ptid; private String value; /*非数据库字段*/ private Property property; public Property getProperty() { return property; } public void setProperty(Property property) { this.property = property; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getPid() { return pid; } public void setPid(Integer pid) { this.pid = pid; } public Integer getPtid() { return ptid; } public void setPtid(Integer ptid) { this.ptid = ptid; } public String getValue() { return value; } public void setValue(String value) { this.value = value == null ? null : value.trim(); } }
步骤 5 :

PropertyValueService

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service; import com.how2java.tmall.pojo.Product; import com.how2java.tmall.pojo.PropertyValue; import java.util.List; public interface PropertyValueService { void init(Product p); void update(PropertyValue pv); PropertyValue get(int ptid, int pid); List<PropertyValue> list(int pid); }
package com.how2java.tmall.service;

import com.how2java.tmall.pojo.Product;
import com.how2java.tmall.pojo.PropertyValue;

import java.util.List;

public interface PropertyValueService {
    void init(Product p);
    void update(PropertyValue pv);

    PropertyValue get(int ptid, int pid);
    List<PropertyValue> list(int pid);
}
步骤 6 :

PropertyValueServiceImpl

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service.impl; import com.how2java.tmall.mapper.PropertyValueMapper; import com.how2java.tmall.pojo.Product; import com.how2java.tmall.pojo.Property; import com.how2java.tmall.pojo.PropertyValue; import com.how2java.tmall.pojo.PropertyValueExample; import com.how2java.tmall.service.PropertyService; import com.how2java.tmall.service.PropertyValueService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PropertyValueServiceImpl implements PropertyValueService { @Autowired PropertyValueMapper propertyValueMapper; @Autowired PropertyService propertyService; @Override public void init(Product p) { List<Property> pts = propertyService.list(p.getCid()); for (Property pt: pts) { PropertyValue pv = get(pt.getId(),p.getId()); if(null==pv){ pv = new PropertyValue(); pv.setPid(p.getId()); pv.setPtid(pt.getId()); propertyValueMapper.insert(pv); } } } @Override public void update(PropertyValue pv) { propertyValueMapper.updateByPrimaryKeySelective(pv); } @Override public PropertyValue get(int ptid, int pid) { PropertyValueExample example = new PropertyValueExample(); example.createCriteria().andPtidEqualTo(ptid).andPidEqualTo(pid); List<PropertyValue> pvs= propertyValueMapper.selectByExample(example); if (pvs.isEmpty()) return null; return pvs.get(0); } @Override public List<PropertyValue> list(int pid) { PropertyValueExample example = new PropertyValueExample(); example.createCriteria().andPidEqualTo(pid); List<PropertyValue> result = propertyValueMapper.selectByExample(example); for (PropertyValue pv : result) { Property property = propertyService.get(pv.getPtid()); pv.setProperty(property); } return result; } }
步骤 7 :

PropertyValueController

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.controller; import com.how2java.tmall.pojo.Product; import com.how2java.tmall.pojo.PropertyValue; import com.how2java.tmall.service.ProductService; import com.how2java.tmall.service.PropertyValueService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller @RequestMapping("") public class PropertyValueController { @Autowired PropertyValueService propertyValueService; @Autowired ProductService productService; @RequestMapping("admin_propertyValue_edit") public String edit(Model model,int pid) { Product p = productService.get(pid); propertyValueService.init(p); List<PropertyValue> pvs = propertyValueService.list(p.getId()); model.addAttribute("p", p); model.addAttribute("pvs", pvs); return "admin/editPropertyValue"; } @RequestMapping("admin_propertyValue_update") @ResponseBody public String update(PropertyValue pv) { propertyValueService.update(pv); return "success"; } }
步骤 8 :

editPropertyValue.jsp

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
<%@ 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_propertyValue_update"; var pvid = $(this).attr("pvid"); var parentSpan = $(this).parent("span"); parentSpan.css("border","1px solid yellow"); $.post( page, {"value":value,"id":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>
步骤 9 :

编辑功能讲解

edit
增值内容,请先登录
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
编辑功能讲解
@RequestMapping("admin_propertyValue_edit") public String edit(Model model,int pid) { Product p = productService.get(pid); propertyValueService.init(p); List<PropertyValue> pvs = propertyValueService.list(p.getId()); model.addAttribute("p", p); model.addAttribute("pvs", pvs); return "admin/editPropertyValue"; }
    @RequestMapping("admin_propertyValue_edit")
    public String edit(Model model,int pid) {
        Product p = productService.get(pid);
        propertyValueService.init(p);
        List<PropertyValue> pvs = propertyValueService.list(p.getId());

        model.addAttribute("p", p);
        model.addAttribute("pvs", pvs);
        return "admin/editPropertyValue";
    }
<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>

		<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>
步骤 10 :

修改功能讲解

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

删除,增加功能不需要

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


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


问答区域    
2022-03-12 加了点东西
我q146




产品没有属性的时候获取当前分类的id跳到对应分类下的属性页面
加载中

							

							


1 个答案

how2j
答案时间:2022-03-13
good!



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





2021-12-26 完成属性值管理模块后, 删除属性将会报错
小沫沫




发现了一个逻辑bug:完成属性值管理模块后, 属性无法删除了,必须要先删除对应的全部属性值。可是属性值没有提供删除功能呀。
加载中
package com.how2java.tmall.service.impl;

import com.how2java.tmall.mapper.PropertyMapper;
import com.how2java.tmall.service.PropertyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class PropertyServiceImpl implements PropertyService {
    @Autowired
    PropertyMapper propertyMapper;

    @Override
    public void delete(int id) {
        propertyMapper.deleteByPrimaryKey(id);
    }
}

							


1 个答案

how2j
答案时间:2022-02-02
因为有外键约束,所以不能删除了



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





2021-10-15 没有编辑产品属性这个页面
2020-07-29 为什么有属性值这个表呢?
2020-06-29 某日,编辑页面更新数据,刷新后该属性项离奇失踪,背后原因竟是......


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

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

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

上传截图