springMVC 踩过的坑 - 记录
1. 后台持久层Spring Jpa(即hibernate), 前台angularJS(angularJS只接受json串), 在后台使用DTO层对象代替domain(entity)与前台交互时,
传递的DTO对象中也包含对象,被包含对象也一定是对应domain的DTO, 因为只有DTO可以序列化和反序列化,用作于表现层的传递对象。
如下:
public class VehicleAnnualAuditDTO { private Long id; private Boolean deleted; // 关联车辆
// 要包含一个其他对象, 类型必须是其对应的DTO类,属性名需要与对应的domain类中的属性名相同,这样自动转化工具比如(ObjectMapper或ModelMapper)能够识别并转化
private VehicleDTO vehicle; // 年审时间
private String annualDate; // 办理人姓名
private Staff agent; // 备注
private String remark; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public Boolean getDeleted() {
return deleted;
} public void setDeleted(Boolean deleted) {
this.deleted = deleted;
} public VehicleDTO getVehicle() {
return vehicle;
} public void setVehicle(VehicleDTO vehicle) {
this.vehicle = vehicle;
} public String getAnnualDate() {
return annualDate;
} public void setAnnualDate(String annualDate) {
this.annualDate = annualDate;
} public Staff getAgent() {
return agent;
} public void setAgent(Staff agent) {
this.agent = agent;
} public String getRemark() {
return remark;
} public void setRemark(String remark) {
this.remark = remark;
} public VehicleAnnualAuditDTO() {
super();
} } 2. 在编写初始化init函数或者其他函数时:切忌要认清该函数的任务, 不要把初始化变量全写在里面然后每次点击都调用,这样会导致初始化数据归置,应该只调用初始化函数一次:
例子:(血的教训啊)
//该函数的主要任务是初始化参数和数据 (*其实该函数取名就不太对,要配置参数就光参数,要刷新数据就刷新数据,怎么还先配置参数在刷新数据,全还在一起了,以后调用肯定出错)
function initialize() {
debugger;
// 初始化参数
$scope.one = "hello";
$scope.filter = {}; // 过滤器 // 分页参数
$scope.pageSize = [, , ];
$scope.pageInfos = {}; // 初始化第一页
toPage(, , null);
}
// 而我在前台调用的地方却是一个经常点击的事件, 该事件其实只需要获取数据
,而我却调用了上面这个方法,导致每次调用参数都会归置
<uib-tabset active="" justified="true">
<uib-tab index="" heading="汽车" th:include="vehicle/info/templates::car" select="initialize()">汽车</uib-tab> //select是一个经常点击的事件,我调用的方法应该只包含数据的刷新而不包含参数
<uib-tab index="" heading="工作车" th:include="vehicle/info/templates::workingCar" select="toWorkingCar()">工作车</uib-tab>
<uib-tab index="" heading="可用车辆" th:include="vehicle/info/templates::vehicleAvailable" select="toVehicleAvailable()">可用车辆</uib-tab>
</uib-tabset>
正确的做法是:
$scope.toVehicleAvailable = function() { //在调用的方法中只处理数据的更新,在参数配置放在另一个函数中
initAvailableVehicle();
}; function initialGanttConfig() { // 专门预处理参数的方法,确保该方法只走一次而不是每次带年纪都走,那样参数每次都重新赋值岂不是权利乱套了全
// 初始化gantt图配置
$scope.headersFormats = {
'year': 'YYYY年',
month: 'YYYY年-MM月',
week: '第w周',
day: 'DD',
hour: 'HH:',
minute: 'HH:mm',
second: 'H:mm:ss',
};
$scope.fromDate = dateService.getMonday();// gantt图开始日期:当前周的周一
$scope.toDate = dateService.getSunday();// gantt图截止日期:当前周的周末
// 监听日期变化
};
initialGanttConfig(); // 只调用一次
springMVC 踩过的坑 - 记录的更多相关文章
- javscript踩过的坑 - 记录
1. js中, ‘==’ 运算符是对大小写敏感的
- unionId突然不能获取的踩坑记录
昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://m ...
- webAPP踩坑记录
最近公司突然给我们下了一个任务 一个星期要做出一个系统网站 外加手机app 2个同事负责 web开发 我负责手机app 的开发 今天终于初级版本做完了,记录一下手机app踩过的坑与优化之路 用 ...
- CentOS7.4安装MySQL踩坑记录
CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...
- ubuntu 下安装docker 踩坑记录
ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...
- SpringBoot + Shiro + shiro.ini 的踩坑记录
0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- google nmt 实验踩坑记录
最近因为要做一个title压缩的任务,所以调研了一些text summary的方法. text summary 一般分为抽取式和生成式两种.前者一般是从原始的文本中抽取出重要的word o ...
- ABP框架踩坑记录
ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...
随机推荐
- 《Effective Java》读书笔记(二)之对于所有对象都通用的方法
第八条 在改写equals的时候请遵守通用约定 一般以下几种情况,不适宜覆盖equals方法 1.类的每个实例本质上都是唯一的,对于代表活动实体而不是值的类确实如此,例如Thread. 2.不关心类是 ...
- java 导入Excel -- 套路及代码分析
一.思路分析 1.我们要做导入,实际上也就是先文件上传,然后读取文件的数据. 2.我们要有一个导入的模板,因为我们导入的Excel列要和我们的数据字段匹配上,所以我们要给它来一个规定,也就是模板. 3 ...
- (转) 从windows XP到10的微软官方操作系统虚拟机镜像,即下即用,不用安装
原文地址: https://blog.csdn.net/tool321_com/article/details/50707512 最近在帮朋友安装虚拟机,遇到了这么一个东西,感觉比较不错,分享如下: ...
- Git 过滤文件,控制上传
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则. 有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用 ...
- sersync2 文件的实时同步备份
|——需求: 监控192.168.9.5[主] 下的 /data/vmeipai 目录 --> 同步到 192.168.12.8 [备] 下的 /data/vmeipai 目录 |——网络拓 ...
- 【javascript 】组合式继承
开发人员采用的js的继承结构 function inheritPrototype(subType, superType) { var prototype = object(superType.prot ...
- ubuntu下erlang man的安装
下载 http://www.erlang.org/download/otp_doc_man_17.1.tar.gz 找到erlang 安装目录 解压 otp_doc_man_17.1.tar.gz s ...
- My Reading List - Machine Learning && Computer Vision
本博客汇总了个人在学习过程中所看过的一些论文.代码.资料以及常用的资源与网站,为了便于记录自身的学习过程,将其整理于博客之中. Machine Learning (1) Machine Learnin ...
- 每天一个linux命令:【转载】rm命令
今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除 ...
- ballerina 学习五 使用composer管理ballerina 项目
1. 启动 composer 备注: 因为这个命名和php的一个包管理工具重名了,所以可能需要使用决定路径 比如我的mac系统使用:Library/Ballerina/ballerina-0.970. ...