模仿天猫实战【SSM版】——后台开发 (4)

PropertyValue 属性值表,这个表关联了两个外键,一个指向 Product ,另一个指向 Property ,当我按照之前的设计把 listProduct.jsp 设计成下面这个样子的时候,点击【编辑属性】,Property 的信息应该怎么传递?

模仿天猫实战【SSM版】——后台开发

模仿天猫实战【SSM版】——后台开发

也就是说,如何处理从 listProduct 跳转到 listPropertyValue 页面时凭空跳出来的 Property 的相关信息?

解决方案:

在 PropertyValueServiceImpl 中增加:

@Autowired PropertyService propertyService;

我们现在有 category_id 和 product_id ,我们可以利用 Property 和 Category 之间的联系,通过 category_id 查询出所有对应的 Property ,然后再筛选出同时匹配 property_id 和 product_id 的 PropertyValue:

public List<PropertyValue> list(Integer product_id, Integer category_id) { PropertyValueExample example = new PropertyValueExample(); List<PropertyValue> propertyValues = new ArrayList<PropertyValue>(); List<Property> properties = propertyService.list(category_id); for (Property property : properties) { // 筛选出同时匹配 property_id 和 product_id 的值 example.or().andProperti_idEqualTo(property.getId()).andProduct_idEqualTo(product_id); propertyValues.addAll(propertyValueMapper.selectByExample(example)); } return propertyValues; }

emmm...这样的思路出来之后,对应的 Controller 就清晰了:

@RequestMapping("/listPropertyValue") public String list(Model model, Integer product_id, Integer category_id) { List<PropertyValue> propertyValues = propertyValueService.list(product_id, category_id); model.addAttribute("propertyValues", propertyValues); Product product = productService.get(product_id); model.addAttribute("product", product); return "admin/listPropertyValue"; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyjdz.html