1.替换计算对象思想,计算前找出要计算的对象,减少代码冗余
DeliveryType calcDeliveryType = null;//计算的运送方式,用来避免冗余代码
if(thisDeliveryType != null){//找到了对应地址的运送方式
calcDeliveryType = thisDeliveryType;
}else if(thisdefaultDeliveryType != null){
calcDeliveryType = thisdefaultDeliveryType;//使用默认运费
}
//使用calcDeliveryType对象来计算运费
calcDeliveryType........业务逻辑
2.表中表概念,json数组,当一个字段的值不仅仅是一个时就要想办法把它存到数据库
[{“attrName”:”规格名称”,”attrValue”:[“规格选项1”,“规格选项2”.... ] } , .... ]
3.数字/字符页面显示汉字
示例1:数据库存的是数字
//数据库存储:未审核0,已审核1,审核通过2,审核未通过3,
var arr = ["未审核","已审核","审核通过","审核未通过"];
var zifu = arr[e.status];
$("#id").html(zifu);
示例2:数据库存的是字符串
//数据库存储:未审核notCheck,已审核yetCheck,审核通过yes,审核未通过no
var statusObj = {"notCheck":"未审核","yetCheck":"已审核","yes":"审核通过","no":"审核未通过"};
var zifu = statusObj[e.status];//取对象属性
$("#id").html(zifu);
//如果是一个循环列表,则在列表上设置用到的值和id,然后在js中循环取值,再经过计算后将其放入.
示例3:angular.js
//数据库存储:未审核0,已审核1,审核通过2,审核未通过3
$scope.statusArr = ["未审核","已审核","审核通过","审核未通过"];
//页面显示
{{statusArr[entity.status]}}
示例4:数据库存的是商品类型id
//可以在后台或前台ajax先查找出所有的商品类型为list
var catagaryArr = [];
for(var i = 0; i < list.length; i++){
catagaryArr[list[i].id] = list[i].name;
}
var catagary = catagaryArr[e.catagary];
$("#catagary").html(catagary);
4.*代表的意义
/* 表示的是该目录下的资源,只包括本级目录不包括下级目录
/** 表示的是该目录以及该目录下所有级别子目录的资源
5.新建对象,防范攻击思想
//当数据从前端传过来,而你只希望更改某条记录的某些字段时,不要用直接传过来的对象,
//因为黑客可能利用该类传过来的值更新该数据的其他不希望更新的字段(不重要的数据就无所谓了)
@RequestMapping("/updateOrder")
public void updateOrder(Order e){
//如果按不重要的数据走
orderServece.update(e);
//如果按重要数据防止其他字段更新走
Order order = new Order();
order.setStatus(e.getStatus());
order.setId(e.getId());
orderService.update(order);
}
6.学习新知识,降低学习成本,写代码思想,
HighlightQuery query=new SimpleHighlightQuery();
HighlightOptions highlightOptions=new HighlightOptions().addField("item_title");//高亮域 highlightOptions.setSimplePrefix("<em style='color:red'>");//前缀 highlightOptions.setSimplePostfix("</em>");//后缀 query.setHighlightOptions(highlightOptions);//为查询对象设置高亮选项
HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(query, TbItem.class);
//先从最后一行开始写,然后从query往前一个类一个类推