前言

只有光头才能变强。
文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

在上一篇中已经讲解了如何从零搭建一个SpringBoot+SpringData JPA的环境,测试接口的时候也成功获取得到数据了。

  • 带你搭一个SpringBoot+SpringData JPA的Demo
    我的目的是做一个十分简易的管理系统,这就得有页面,下面我继续来讲讲我是怎么快速搭一个管理系统的。

ps:由于是简易版,我的目的是能够快速搭建,而不在于代码的规范性。(所以在后面你可能会看到很多丑陋的代码)

一、搭建管理系统

1.1. 搭建页面

在上一篇的最后,我们可以通过http://localhost:8887/user接口拿到我们User表所有的记录了。我们现在希望把记录塞到一个管理页面上(展示起来)。

作为一个后端,我HTML+CSS实在是丑陋,于是我就去找了一份BootStrap的模板。首先,我进到bootStrap的官网,找到基本模板这一块:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327112242326
我们在里边可以看到挺多的模板的,这里选择一个控制台页面:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327112423574
于是,就把这份模板下载下来,在本地中运行起来试试看。官方给出的链接是下载整一份文档,我们找到想要的页面即可:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327112911911
于是我们将这两份文件单独粘贴在我们的项目中,发现这HTML文件需要bootstrap.css、bootstrap.js、jquery的依赖(原来用的是相对路径,其实我们就是看看相对路径的文件在我们这有没有,如果没有,那就是我们需要的)。这里我们在CDN中找找,导入链接就行了。

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327113316123
于是我们就将所缺的依赖替换成BootCDN的依赖,最重要的几个依赖如下:

<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>

如无意外的话,我们也能在项目中正常打开页面。

1.1.2 把数据塞到页面上

把数据塞到页面上,有两种方案:要么就后端返回json给前端进行解析,要么就使用模板引擎。而我为了便捷,是不想写JS代码的。所以,我使用freemarker这个模板引擎。

为什么这么多模板引擎,我选择这个?因为我只会这个!
在SpringBoot下使用freemarker也是非常简单,首先,我们需要加入pom文件依赖:

<!--freemarker--><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-freemarker</artifactId></dependency>

随后,在application.yml文件中,加入freemarker的配置:

  # freemarker配置  freemarker:    suffix: .ftl    request-context-attribute: request    expose-session-attributes: true    content-type: text/html    check-template-location: true    charset: UTF-8    cache: false    template-loader-path: classpath:/templates

这里我简单解释一下:freemarker的文件后缀名为.ftl,程序从/templates路径下加载我们的文件。

于是乎,我将本来是.html的文件修改成.ftl文件,并放在templates目录下:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327114812718
接下来将我们Controller得到的数据,塞到Model对象中:

/*** 得到所有用户。*/@GetMapping(value = "/comment", produces = {"application/json;charset=UTF-8"})public String  getAllComment (Model model) {List<Comment> allComment = commentService.getAllComment();model.addAttribute("comments", allComment);return "/comment";}

图片如下:代码有误以图片为准

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327115157064
在ftl文件中,我们只要判断数据是否存在,如果存在则在表格中遍历出数据就行了:

   <#if users?? && (users?size > 0)>     <#list users as user>       <tr>         <td>${user.userId}</td>         <td>${user.userNickname}</td>         <td>${user.userEmail}</td>         <td>${user.actiState}</td>         <td><a href="http://localhost:8887/deleteUser?id=${user.userId}">删除</a></td>       </tr>       </#list>     <#else>       <h3>还没有任何用户</h3>   </#if>

图片如下:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327115527540
删除的Controller代码如下:

/** * 根据ID删除某个用户 */@GetMapping(value = "/deleteUser", produces = {"application/json;charset=UTF-8"})public String  deleteUserById (String id,Model model) {  userService.deleteUserById(id);  return getAllUser(model);}

我们再找几张自己喜欢的图片,简单删除一些不必要模块,替换成我们想要的文字,就可以得到以下的效果了:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327115841426
至于图片上的评论管理、备忘录管理的做法都如上,我只是把文件再复制一次而已(期中没有写任何的JS代码,懒)。

在编写的期中,要值得注意的是:静态的文件一般我们会放在static文件夹中。

项目的目录结构如下:

【极简版】SpringBoot+SpringData JPA 管理系统
image-20190327121043014

最后

本文涉及到的链接(bootstrap & cdn):

  • https://v3.bootcss.com/getting-started/#template
  • https://www.bootcdn.cn/all/

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

【极简版】SpringBoot+SpringData JPA 管理系统
帅的人都关注了
据说爱分享的人,最后都成了大神!【极简版】SpringBoot+SpringData JPA 管理系统【极简版】SpringBoot+SpringData JPA 管理系统

推荐阅读:

  • 一个二本大佬的成长之路
  • 用简单代码实现IOC容器
  • 系统盘为啥往往是C盘?软件为啥希望把自己装在C盘上?
  • Java 8的Stream代码,你能看懂吗?
  • 带你搭一个SpringBoot+SpringData JPA的Demo
  • 如何理解axis?

更多相关文章

  1. 【JavaWeb基础】文件上传和下载(修订版)
  2. 前后端分离项目,如何优雅实现文件存储!
  3. mall整合OSS实现文件上传
  4. 图解 Class 文件结构
  5. Class 文件的结构
  6. 优化博客页面访问速度
  7. MyBatis之Mapper XML 文件详解(二)-sql和入参
  8. MyBatis之Mapper XML 文件详解(三)-Result Maps
  9. MyBatis之Mapper XML 文件详解(一)

随机推荐

  1. Android实现左滑退出Activity(完美封装)
  2. android 常用intent
  3. 探讨android 导航栏中的recent_app界面
  4. android:configChanges属性总结
  5. 在Android中实现图片缩放和旋转
  6. Android的icon设计指南
  7. Android 8.0 Activity启动过程分析
  8. Android Studio常用混淆配置
  9. Android中自定义Dialog外形,去除黑底和白
  10. Android用户体验团队:Android(安卓)UI设计