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 踩过的坑 - 记录的更多相关文章

  1. javscript踩过的坑 - 记录

    1. js中, ‘==’ 运算符是对大小写敏感的

  2. unionId突然不能获取的踩坑记录

    昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://m ...

  3. webAPP踩坑记录

    最近公司突然给我们下了一个任务  一个星期要做出一个系统网站 外加手机app   2个同事负责 web开发  我负责手机app 的开发 今天终于初级版本做完了,记录一下手机app踩过的坑与优化之路 用 ...

  4. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  5. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  6. SpringBoot + Shiro + shiro.ini 的踩坑记录

    0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业 ...

  7. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  8. google nmt 实验踩坑记录

       最近因为要做一个title压缩的任务,所以调研了一些text summary的方法.    text summary 一般分为抽取式和生成式两种.前者一般是从原始的文本中抽取出重要的word o ...

  9. ABP框架踩坑记录

    ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...

随机推荐

  1. [AirFlow]AirFlow使用指南一 安装与启动

    1. 安装 通过pip安装: xiaosi@yoona:~$ pip install airflow 如果速度比较慢,可以使用下面提供的源进行安装: xiaosi@yoona:~$ pip insta ...

  2. Openlayers3中实现地图的切割

    概述: 本文讲述如何在Openlayers3中结合canvas实现对地图的切割. 效果: 全图 切割北京区域 切割河北区域 实现: <html xmlns="http://www.w3 ...

  3. [Linux] 终端设置只显示当前目录及终端美化

    1.只显示当前目录 vim ~/.bashrc 找到位置: if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($d ...

  4. js之敏感词过滤

    HTML <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  5. PHP---文件上传与下载

    转自http://www.cnblogs.com/lazycat-cz/p/4113037.html 安全性能---水平不够 ╮(╯_╰)╭ 文件上传--->就是将本地的文件上传到服务器上.(H ...

  6. Codeforces 1030F 【线段树】【好题】

    LINK 题目大意: 给你n个物品,每一个物品有一个位置p和一个权值w,移动一个物品的代价是移动距离*物品权值 有q个询问: 把第i个物品的权值变成j 问把第l到第r个物品移动到一个相邻的区间中\([ ...

  7. 解决遇到Linux网络配置,从熟悉网络配置文件入手

    如果接触过Linux,网络配置是一个比较棘手的问题.但是Linux是文件为基础来构建的系统,包括我们windows中设备,Linux也视为文件.所以只要我们明白文件的作用.就能对Linux更加的熟悉, ...

  8. lib包含# #pragma comment

    #pragma comment(lib,"d2d1.lib")#pragma comment(lib,"dwrite.lib")#pragma comment( ...

  9. maven的pom.xml文件配置说明

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  10. 自定义vue全局组件use使用(解释vue.use()的原理)

    我们在前面学习到是用别人的组件:Vue.use(VueRouter).Vue.use(Mint)等等.其实使用的这些都是全剧组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的 ...