在开发项目过程中,学到了一些开发时候的技巧。 可以应用于一些场景,对开发有益处。记录一下,免得忘记
1.Controller参数通用化
场景:
根据条件操作,根据需求传入例如:用户名、密码、手机验证码,作为参数。
考虑:
1.业务需求变更、字段更新
2.逻辑处理变化
解决:
1.需求变更,原来的字段不要删除
@RequestParam(value="smsCode", required=false) String smsCode //加入required=false
2.字段更新,将原来的逻辑抽离成方法
2.公用页面抽离
场景:
页面头部、底部、侧边栏等
考虑:
1.通用
2.修改量少
解决:
比较简单,在html中访问后台,直接返回相应的页面
html:
//为减少修改量,此时最好的方式是利用隐藏form表单
<a href="javascript:void(0);" id="aa" />
<form style="display:none;" id="for">
<input type="text" name="..." />
...
<input type="text" name="page" value="x" />
<input type="text" name="pageSize" value="x" />
</form>
JS:
$('#aa').click(function(){
$('#for').submit();
})
@RequestMapping('commonList')
public String commonList(@RequestParam(value="page", default = "1") Integer page,
@RequestParam(value="pageSize", default = "10") Integer pageSize, ...) {
...
return "/common/list";
}
3.CSS写法
不是专门的前端,只是有时候前端有些东西有冲突,不得不自己修改。
场景:
页面冲突,全局元素使用过多
设计缓冲余地小,数据多的时候显示不正常(比如:分类名称,只考虑到四个字的,多了和少了)
需求不停变更
解决:
写css的时候,一层一层的来。 除去公共的字体等效果,减少使用全局元素
类名尽量有意义,可使用驼峰命名
需求变更,无解......
4.JS
能使用异步就使用异步:
1.交互效果好
2.参数拼装不需要改动页面
3.控制灵活
var data = {};
data.username = $('.reg-box .login-form input[name="username"]').val();
data.password = $('.reg-box .login-form input[name="password"]').val();
data.smsCode = $('.reg-box .login-form input[name="smsCode"]').val();
data.imageCode = $('.reg-box .login-form input[name="imageCode"]').val();
data.registerUrl = window.location.href;
$.post('/registLoginAndReset/register', data, function(d) {
if(d.error != null && d.error != '') {
showerror("reg-box",d.error);
} else {
var url = d.url;
if(url.indexOf('#') > 0)
url = url.substring(0, url.indexOf('#'));
window.location.href = url;
}
}, 'json')