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

editCategory.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <meta charset="utf-8"/> <meta content="width=device-width, initial-scale=1.0"/> <title>模仿天猫-后台</title> <!-- Bootstrap Styles--> <link href=""/> <!-- FontAwesome Styles--> <link href=""/> <!-- Morris Chart Styles--> <!-- Custom Styles--> <link href=""/> <!-- Google Fonts--> <link href='http://fonts.googleapis.com/css?family=Open+Sans' type='text/css'/> </head> <body> <div> <nav role="navigation"> <div> <button type="button" data-toggle="collapse" data-target=".sidebar-collapse"> <span>Toggle navigation</span> <span></span> <span></span> <span></span> </button> <a href="http://www.likecs.com/listCategory">Tmall</a> </div> </nav> <!--/. NAV TOP --> <nav role="navigation"> <div> <ul> <li> <a href="http://www.likecs.com/listCategory"><i></i> 分类管理</a> </li> <li> <a href="http://www.likecs.com/listUser"><i></i> 用户管理</a> </li> <li> <a href="http://www.likecs.com/listOrder"><i></i> 订单管理</a> </li> <li> <a href="http://www.likecs.com/listProduct"><i></i> 产品管理</a> </li> <li> <a href="http://www.likecs.com/listLink"><i></i> 推荐链接管理</a> </li> </ul> </div> </nav> <!-- /. NAV SIDE --> <div> <div> <div> <div> <h1> 分类管理 <small> - id:${category.id} </small> </h1> </div> </div> <div> <div> <!-- Advanced Tables --> <div> <div> 编辑分类 </div> <div> <div> <form action="updateCategory" role="form"> <div> <%-- 隐藏id属性,一并提交 --%> <input type="hidden" value="${category.id}"> <label>分类名称:</label> <input value="${category.name}"> <br/> <div> <input type="submit"> </div> </div> </form> </div> </div> </div> <!--End Advanced Tables --> </div> </div> </div> </div> <!-- /. PAGE WRAPPER --> </div> <!-- /. WRAPPER --> <!-- JS Scripts--> <!-- jQuery Js --> <script src=""></script> <!-- Bootstrap Js --> <script src=""></script> </body> </html> 这样就完成了 Category 的后台管理模块

其他模块的思路跟 Category 如出一辙,就比较偏向于体力劳动了...

注意: 所有本类的 id 属性均为 id ,所有外键的 id 都是 属性名_id 这样的格式,保持统一!

Example 条件查询

MyBatis 逆向工程自动生成文件的时候自动生成了 Example 条件查询类,我们到底应该怎么使用它呢,这里简要的说明一下。

不得不说这个东西还挺神奇,也很方便,比如我们需要查询 category_id 对应下的属性表,我们可以这样写:

public List<Property> list(Integer category_id) { PropertyExample example = new PropertyExample(); example.or().andCategory_idEqualTo(category_id); List<Property> properties = propertyMapper.selectByExample(example); return properties; }

通过方法名其实也很容易看懂这些是什么意思,我们首先创建了一个 PropertyExample 实例对象,然后通过 .or() 方法开启条件查询,.andCategory_idEqualTo() 匹配对应的 category_id ,自动生成的 sql 语句就像这样:

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

更多详情戳这里 - 引用其他博客的详细说明

IDEA 快速重构

当我编写好了 PropertyService 、PropertyServiceImpl、 PropertyController 之后再想要去编写 Product 的这一系列文件的时候,发现其实很多代码都是重复的,只是很少一部分的代码需要改动,暂时不考虑设计模式的话,我们可以使用 IDEA 来完成快速重构:

直接复制 PropertyController 的代码到 ProductController 中,然后【Ctrl + F】搜索 Property :

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

我们可以发现所有的 Property 都高亮了,然后我们怎么批量修改呢?

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

然后继续疯狂码代码...

开发过程中遇到的一些问题 PropertyValue 遇到的麻烦

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

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

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