1.当你想修改项目的标题,前端将jeecgboot改成你想要的标题的时候,去前端的.env文件中进行修改。
图1 修改标题
根据路径找到文件,将网站标题改成自己需要的就可以正常显示了。
图2 显示前
图3 显示后
2.在动态数组中,如果你知道数组需要多少长度,尽量给他确定一下长度,可以提升性能,养成个习惯。
图4 给数组定长度
3.针对于结果允许为空的方法,需要判断这里的值是否为空,否则代码中可能会报空指针异常。
比如:
public Result<String> add(@RequestBody Kpi kpi) {LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();kpi.setCreateByDepartId(sysUser.getOrgId());kpi.setRespondepartment(sysUser.getOrgId());kpiService.save(kpi);//将kpi中的配合部门赋值给tobedone中的的配合部门String[] result=kpi.getCooperatedept().split(",");List<Tobedone> tobedoneList = new ArrayList<>(result.length);for(int i=0;i<result.length;i++){Tobedone tobedone = new Tobedone();tobedone.setKpiId(kpi.getId());tobedone.setTaskstatus(Constants.TODO);tobedone.setTasktype(Constants.KPI);tobedone.setCoopDepart(result[i]);tobedoneList.add(tobedone);}tobedoneService.saveBatch(tobedoneList);return Result.OK(Constants.ADD_SUCCESS);}
在这段代码中的kpi.getCooperatedept方法在获取数据的时候有可能会为空,因为一个指标的配合部门可以为空,在设计代码的时候也允许一个指标没有配合部门,所以我们要对这段代码进行处理,当判断获取到的配合部门数据不为空且不为空字符串的时候才执行后面的赋值操作。
修改后的代码为:
public Result<String> add(@RequestBody Kpi kpi) {LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();kpi.setCreateByDepartId(sysUser.getOrgId());kpi.setRespondepartment(sysUser.getOrgId());kpiService.save(kpi);//将kpi中的配合部门赋值给tobedone中的的配合部门String cooperatedept = kpi.getCooperatedept();//判断其不为空且不为空字符串的时候才进行后续的操作。if (cooperatedept != null && !cooperatedept.trim().isEmpty()) {String[] result = cooperatedept.split(",");List<Tobedone> tobedoneList = new ArrayList<>(result.length);for(int i=0; i<result.length; i++) {Tobedone tobedone = new Tobedone();tobedone.setKpiId(kpi.getId());tobedone.setTaskstatus(Constants.TODO);tobedone.setTasktype(Constants.KPI);tobedone.setCoopDepart(result[i]);tobedoneList.add(tobedone);}tobedoneService.saveBatch(tobedoneList);}return Result.OK(Constants.ADD_SUCCESS);}
4.前端需要必填的属性需要添加上必填,不填不给提交。
只需要在代码中添加代码required: true。这样在前端的显示的时候就会提示必填。
图4 字段设置必填
5.页面调整:
编写代码的时候不止需要考虑后端代码,还需要考虑前端的美观性。修改前:
图5 前端修改前
各个字段的长度都相同,应该哪一部分的内容多,输入框就给的多一些。所以直接设置为多行文本。
修改后:
图6 修改后
6.因为字段的长度设置导致执行数据库时出现异常。
图7 执行数据库异常
总而言之,是因为数据库字段的长度设置的太短,但是输入框文本中的数据很长,比如图中的配合部门,数据库设置的varchar(64),但是很明显超出了长度。只需要修改数据库字段的长度即可。
图8 修改数据库字段的长度
7.分页写死了导致只能获取第一页的数据而不能获取第二页以及之后的数据,修改后的代码如下,拿一个方法进行举例:
/** 汇报年度关键指标* */@RequestMapping(value = "/report_kpi", method = RequestMethod.GET)@Transactional//事务处理注解public Result<IPage<ReportKpi>> reportKpi(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();List<ReportKpi> ReportKpiList = reportKpiService.SelectReportKpiListAll(sysUser.getOrgId());// 手动实现分页int total = ReportKpiList.size();int startIndex = (pageNo - 1) * pageSize;int endIndex = Math.min(startIndex + pageSize, total);List<ReportKpi> pagedList;if (startIndex < total) {pagedList = ReportKpiList.subList(startIndex, endIndex);} else {pagedList = new ArrayList<>();}Page<ReportKpi> page = new Page<>(pageNo, pageSize, total);page.setRecords(pagedList);return Result.OK(page);}