- 博客(20)
- 收藏
- 关注
原创 重复点击按钮
重复点击按钮会导致重复提交表单,从而产生重复的数据。我们可以有多种方式解决,比如在数据库添加唯一索引。在这里,提供另一种方式,在前端控制用户重复点击。前端用的是react + antd,因此案例代码与react相关,但思想是一致的。提供公共组件:定义了state: buttonDisabled, updateButtonDisable functionimport React from 'react';import { Button } from 'antd';import PropT
2020-08-26 11:31:39
1601
原创 接口作为方法参数
在java8中,我们可以使用接口作为方法参数。例如:public interface PaymentProvider { PaymentsResponse chargeCard(Charge charge);}chargeCard可以有两种类型的card1- cardDetail 2-cardReference, 因此在这里,可以用public interface Charge { PaymentsRequest generatePaymentsRequest();.
2020-08-03 14:12:11
2698
原创 一个web app有多主题,多环境
在一个web app应用中,需要有多个运行环境,并且每个运行环境主题也是不一样。本项目解决方案import()http://es6.ruanyifeng.com/#docs/module#importES6 import() 可以动态加载,可以利用环境变量导入不同文件,缺点:import() 是异步加载, 加载时,首先同步加载加载 import... from..., 然后加载 ...
2019-11-29 17:53:30
366
原创 集成SpringBoot和Sentry
Sentry是一款错误追踪系统,可以帮助我们发现并定位逻辑异常。 如何集成Spring Boot与Sentry?<dependency> <groupId>io.sentry</groupId> <artifactId>sentry-spring</artifactId> <version>1.7...
2019-11-29 16:05:46
1763
原创 集成 React 和 Google Analytics
Google Analytics 基本使用1.注册谷歌分析https://marketingplatform.google.com/about/完善个人信息,获取跟踪Id,同意协议。2.为网站加上谷歌分析代码https://developers.google.com/analytics/devguides/collection/gtagjs必须先完成上述操作,才能继续下面的步...
2019-11-29 15:42:04
1802
原创 React google map
在页面中,当填写地址信息时,需要动态展示下拉的相关地址信息,当选中某一地址信息,右边则展示地图,即相应的位置。前端使用的是React 以及Yarn在前端需要添加插件: yarn add react-places-autocomplete(npm install react-places-autocomplete)在你的页面中导入Location.jsx组件Location.jsx...
2019-09-20 18:03:53
1013
原创 google-maps-services 计算两地距离
本人在做招聘网站开发时,遇到需要根据地址计算应聘者以及工作地的经纬度以及两者之间的距离。通过查找相关资料,决定使用google-maps-services插件。该插件使用比较简单。案例如下:<dependency> <groupId>com.google.maps</groupId> <artifactId>google-maps-...
2019-09-20 17:34:45
614
原创 控制层使用DTO代替Entity
本文是关于如何在api请求体和响应体中使用DTO,以及如何在DTO和实体之间进行映射。为什么使用DTO而不是实体?更新实体有时只更新实体的一部分,如果在请求体中使用实体,当您只传递实体中的部分字段时,其他字段将是实体的默认值或null。如果实体的字段太多,更新将变得非常麻烦。 通过使用仅传递您需要的字段的不同DTO,它将使请求更加高效和简洁。 Spring MVC自动将请求参数绑...
2019-08-28 17:25:08
2488
原创 java 防止 XSS 攻击
本人在做某项目中,存在通过电子邮件模板消息存储XSS,因为前端使用富文本编辑框编辑html,但在后端保存的时候,并没有进行xss过滤,因此存在xss问题。经过研究,本项目使用https://github.com/OWASP/java-html-sanitizer清理所有包含html标记的字段,这些字段可以防止xss攻击。public class HtmlUtil { private...
2019-08-28 15:03:33
1241
原创 JPA 逻辑删除
为了避免每次在查询的时候加上是否删除字段,做了一下封装。@NoRepositoryBean@RepositoryRestResource(exported = false)public interface BaseRepository<T extends BaseEntity, IdT extends Long> extends JpaRepository<T...
2019-06-28 17:22:35
3157
原创 CSS控制字段值过长
在项目开发中,我们会遇到因为字段值过长导致样式变得很丑。我的解决方案是过长后就以xxx...代替。.base-applicant-list-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; width: 300px;}这个可以实现...
2018-12-07 18:04:16
584
原创 Antd Radio Group
在使用antd中Radio.Group时,第一次点击会选中某一选项,但当你再次选中该选项时,它不做任何操作。而我的需求是需要取消选中的值。按照如下操作,即可解决该问题:divClick = (e) => { const tag = e.target;// console.log(tag.value) like this below//<span>Poor</...
2018-12-07 17:49:44
6852
原创 React / JSX规范
基本规则每个文件只包含一个React组件。 但是,每个文件允许多个无状态或纯组件。 始终使用JSX语法。 React.createElement除非您从不是JSX的文件初始化应用程序,否则请勿使用。Class vs React.createClass vs stateless If you have internal state and/or refs, prefer cla...
2018-11-21 15:39:06
647
原创 Dorado中使用定时器
本篇主要介绍在Dorado中如何使用定时器。1.先实现InitializingBean接口,为BillJobPR类添加定时任务,QuartzManager只是个工具类,下面也提供了addJob方法。@Componentpublic class InitServlet implements InitializingBean{ //定时每天8-20每半时执行一次 public stat
2018-01-25 15:24:26
708
原创 Dorado下拉框多选(ListDropDown)
最终样式如下图:这里是通过ListDropDown下拉框做出的效果。1.在ListDropDown的Entity属性添加下拉内容。并且设置红色框的属性为false该控件的onClose事件:var value = arg.selectedValue;var comm = view.get("#dsComment").getData("#").get("commText")
2018-01-11 11:23:03
2652
1
原创 Dorado自定义下拉框(多选一)
下拉框多选最终样式表(我这里下拉的内容是固定的,不是查询出来的):1.由于下拉内容是固定的,因此不需要dataType和dataSet。因此,在dataGid的onReady事件:self.set("items", view.busTypeItems);而view.busTypeItems写在view的onReady:view.busTypeItems = [ { key : 0, v
2018-01-11 10:51:38
1948
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人