学校的一个实训要求用springboot 开发,作为第一次接触该框架的前端人儿来说,是个挑战。
也做了半个月了,项目还有一半大概。笔者决定再此记录开发中遇到的错误,同大伙分享的同时,也告诫自己不要再犯。

后端我之前用nodejs 做过一次,所以在这次用springboot的时候,感觉没有那么困难,常有似曾相识的感觉。那么话不多说,直接进入正题。

一.开发前的准备

匹配版本,配置环境费了不少时间,但不得不这么做。为了防止莫名其妙地bug,甚至也为了能跑起来项目。

二.连接数据库

相对来说较为简单,不过由于在下的女朋友在帮我安装mysql的时候,手贱把默认端口号改了,所以我看着错误,疯狂百度,无济于事,最终在配置文件发现问题。。。

三.开发过程中的问题

这也是最多的。

1. 由于马虎,拼写错误,或者目录结构错误。

非常要避免的。这种问题,如果编译器不给面子,不明明明白白的告诉你问题所在,你是很难发现的。
名称对应不上,这种的问题最好方式就是在写的时候,直接复制粘贴,不是懒,而是为了正确性。
至于目录结构,新手才会遇到的问题,多练习就好。
所以嘛,做事一定要认真,战战兢兢,如履薄冰。

2.技术问题。

a. 比较常见的报错类型,空指针。
(1)一般在报错信息中很好发现,一定是你引用了一个不存在的量。需要耐心查找。

举例:在一个界面,我需要从数据库中读取一系列数据渲染到首页上。这时,我在进入首页的时候,获取到这些数据并渲染。那么这个部门呢,在渲染的时候是传输的id而不是名字,我又再一次进入数据库根据他们的id匹配部门的名字。

同时,首页有查询功能。当我查询之后,发现报错,空指针。为什么当时还好好的,在把部门id映射为名字之后就不行了呢?
我找了找,发现在debug信息中,有:

并且明确的告诉我是哪一行的错误,故我马上就想起来,deptList只在我进入首页的时候获取了,但是在查询页根本没有设置。添加完正常。

(2)数据库中存在脏数据。

还是以上面的例子来说,我将这个项目给朋友导入,结果他却无法访问首页,报错类型为空指针。
我在代码调试信息中,确定是在if语句这一行。

我将两个方法都输出了一遍,起初还没发现 端倪。直到我定睛一看,发现user.getDeptId()方法输出的时候,有一航输出的是null。感觉到是数据库那边起火了,我去mysql的表中看了下,发现

空指针的原因找到,修改后正确。
顺便提一下,这条数据是我在起初调试的时候加入的,没有在意,却埋下了隐患,希望大家多多注意QAQ

b. 前端发生的错误
(1)错把循环渲染的元素设置同样的id

举例:

a标签是根据用户列表数据循环生成的。因为提交到删除路由,故起名id=del。至此,网页没有报错,我也就没注意。
但是等到我想添加一个删除确认时,发现,阻止a标签默认行为,不论是e.preventDefault(),还是return false,都没用。
找了一会发现,有可能是这个问题,修改成class=del之后,解决。

c. 未解决的问题

使用 thymeleaf 渲染前端数据,渲染一个表格,其中有一行数据时根据id再次要映射为名字。这个基本的结构就是

<tr th:each="user : ${userList}"><td th:text="${user.account}"></td><td th:text="${user.name}"></td><td th:text="${user.job}"></td><span th:each="dept : ${deptList}"><td th:if="${dept.deptId eq user.deptId}" th:text="${dept.deptName}"></td></span>   <td><a th:href="@{/um/toUpdate(id=${user.id})}" class="update">修改</a><a th:href="@{/um/doDelete(id=${user.id})}" class="del" data-delName="<%=user.getName() %>">删除</a></td></tr>

现阶段,没有熟悉 thymeleaf 的语法时,我决定使用span标签来包裹td标签,条件遍历来实现。但是这样会有一个问题,就是会生成很多的空span标签…话说这东西的if和vue的if机制不同啊也,既然条件为false了,为啥要创建dom呢…如果有董哥知道的话,请指点下谢谢~

未完待续…

springboot+thymeleaf 东软医疗项目 开发错误记录相关推荐

  1. 基于SpringBoot和MyBatisPlus的项目开发脚手架

    本博客主要功能是从创建Spring Boot项目开始讲解如何搭建一个较为通用的快速开发脚手架,方便在以后的开发中可以快速的应用,避免每次写都要去以前的项目里翻工具类和通用配置. 代码下载地址:基于Sp ...

  2. MIMIC 以太坊医疗项目开发(5)truffle部署智能合约

    truffle是以太坊开发框架, 本地的用来编译.部署智能合约的工具. 1. Truffle安装 npm install truffle -g 2. Truffle项目开发 创建目录 mkdir Me ...

  3. 实验管理系统springboot+vue+element ui项目开发

    实验管理系统 某学院实验老师长期采用人工的形式完成药品试剂的入库.查询.出库的流程.但这种方式存在诸多问题和不便: 1. 在仓库运行流程中效率不高,容易出错. 2. 管理人员不能方便的了解每种物品的状 ...

  4. APAX-5017PG 项目开发全程记录 - 筹备篇

    APAX-5017PG 一款嵌入式产品,采用微信号架构的汇聚处理器(ADI Blackfin537 CPU),本次项目主要用于水力发电控制及信号处理,它完成了A/D采样,并将采样到的信号送给DSP(B ...

  5. MIMIC 以太坊医疗项目开发(7) 医疗智能合约 sample

    本文引自<基于区块链的医疗信息系统及智能合约设计>辽宁科技大学学报 第43卷 第2期 2020年4月 Journal of University of Science and Techno ...

  6. MIMIC 以太坊医疗项目开发(6)Web3智能合约API

    web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互. 它具备如下性质: •通过JSON-RPC与Ethereum客户端进行交互 •支持所有的JSON-RPC方法类型 ...

  7. MIMIC 以太坊医疗项目开发(2) 前端H5介绍

    Vue.js 是一套H5用户界面的渐进式框架.只关注视图层, 采用自底向上增量开发的设计, 通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 前端基于Vue框架编写. mounted是v ...

  8. APAX-5017PG 项目开发全程记录 - 调试篇

    APAX-5570的utility(自写)已可以向APAX-5017PG下发配置命令       example_apax5570,使用vs c# 2005写的utility,目前在APAX-5570 ...

  9. 开发错误记录9:Application无法跳转到Activity

    今天在做友盟消息推送,当客户端收到推送消息时,如客户端不是活动的,用如下代码 启动Activity发现无法启动,原因是原有的任务栈已消毁,判断启动是如消毁,如有,再新建一个 只要给它添加一个标志 就可 ...

最新文章

  1. Docker背后的内核知识:命名空间资源隔离
  2. 算法面试:精选微软经典的算法面试100题(第1-20题)
  3. HDU1151 Air Raid
  4. poi获取段落位置_Apache POI:从java中的word文档(docx)中提取段落和后续表格
  5. 你花了多久弄明白架构设计?多个java应用同时访问数据库
  6. java与.net平台之间进行RSA加密验证
  7. ASP.NET开发资源
  8. 百世快递收到纽交所退市警告!国内业务已68亿“卖身”
  9. 滴滴派发15亿出行消费券 覆盖快车、优享等多产品
  10. linux 环境下git的安装与配置
  11. dlopen失败一例:路径字串多一个回车,导致文件找不到
  12. 招投标系统简介 招投标系统源码 java招投标系统 spring cloud spring boot 招投标系统功能设计
  13. 计算机的性能及评估标准
  14. 产品优化策略,有效提升产品自身竞争力,我赌你一定没用过
  15. 我的世界java版本试玩_我的世界Minecraft Java版17w49a发布
  16. 姓舒男孩名字简单大气
  17. 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
  18. 写给小温——当繁花落尽的一刻
  19. linux硬件信息在哪个目录下,Linux 查看系统硬件信息
  20. linux day03 基础知识学习

热门文章

  1. Oracle数据安单方面面观(1)
  2. 线上服务 CPU 100%?一键定位 so easy!
  3. Android 播放opus格式的音频
  4. 燃气行业经营概况及数据模型设计指南
  5. Cannot read property ‘currentStyle‘ of null 问题与解决办法
  6. PHP血清蛋白的功效,血清白蛋白_什么是血清白蛋白_血清白蛋白临床意义_快速问医生...
  7. 全国省会及副省级以上城市GDP、固定资产投资总额和城镇居民人均消费支出数(1949-2019年)
  8. 为银行设计ATM菜单C语言,ATM银行管理系统代码及程序c语言课程设计【荐】.doc
  9. js数组搭建一个属于自己的银行管理系统
  10. qq飞车服务器未响应怎么回事,qq飞车手游卡住不动