java前后台开发经验

管理系统开发中的一些经验和规范

Wishes: 一切为了简化和标准化。

1 适用背景

本文档中的规范,具有一定的适用性,当然也可以根据需要扩展改造到适合其他开发环境下。

适用场景:

1. 以增删改查为基础的管理界面。

2. 弹出窗口非iframe加载,以ajax动态弹窗(iframe需要占用的资源更多,和当前页面共享方法和数据比较麻烦)。

3. 正常情况下,弹出窗口在关闭后,dom资源及javascript对象被回收,释放资源。

4. 增,改,查看单条数据,默认采用弹出窗口,但不局限于弹窗,也可整个内容区跳转。

 

2 页面及Controller层

 

image

页面

Controller

说明

manage

manage

用于搜索条件,新增按钮等操作功能

list

List

分页查询列表数据

add

add

新增页面(可加入一些新增需要的)

doAdd

执行新增操作

Update

update

修改页面

doUpdate

执行修改操作

view

view

查看页面

 

 

2.1 manage页面

manage

功能定位:

a. 用于搜索条件罗列,新增按钮等操作功能;

b. queryList方法,用于处理分页及查询。

c. 放置一个空的dom节点,<div id=”dl”></div> 用于装载列表分页数据。

优点

a. 搜索条件和列表分离,无需刷新列表页面后保存搜索条件数据。

b. 搜索条件和新增等操作分离,分页列表只需关心列表相关数据。

c. 调用搜索方法,无需追加参数,直接在方法中获取(详见queryList方法说明)。

2.2 list页面

list

功能定位:

a. 表头展示,数据列表展示;

b. 数据操作(修改,删除等);

c. 分页展示跳转。

d. 操作事件绑定。

优点:

a. 搜索区域和列表区域分离,列表区域只需关心列表部分内容。

b. 和pageQuery继承,只需要使用 #showPageQuery(${pageQuery}, ‘queryList’);即可实现分页操作。

c. 每个单行数据的操作当前设计为放在列表后面的操作区域里面。

缺点:

a. 每行后面按钮堆叠,看上去不够美观。 强迫症患者可以通过把操作按钮统一为一个,通过checkbox选择数据及进行处理。或者更好的展现形式。

2.3 add页面

add

功能:

a. 新增内容编辑区域;执行新增保存操作。

b. 新增成功后,刷新后面的列表。

优点:新增页面及操作和其它功能页面分离,更加独立方便查找更新。

2.4 update页面

update

功能:修改页面,修改单条数据。

2.5 view页面

单条数据详情查看页,类似修改页面,内容全部为只读,无修改功能(可和修改页面合并,可选功能)。

3 pageQuery对象说明

clip_image012

相关成员变量及方法参看源代码。

说明及注意事项:

a. PageQuery对象如果不传入一个map,则会尝试获取一个servletRequest对象进行请求参数获取。

b. 在每次获取分页数据前,一定要进行count,并调用 setTotalCount方法,才会将DAO层需要的参数计算出并放入参数map中。(不设置将会造成分页信息不准或者抛出异常).

c. 设置totalCount后,PageQuery会自动计算,总页数(pageCount),自动校正当前页码是否越界,如果越界修正为最大页码。

d. PageQuery配合velocity相关宏定义即可实现分页的简单调用。

4 javascript使用经验


4.1 前端的MVC模型。


传统模式:

<button οnclick=”update_function(232)”>修改</button>

function update_function(id){

//执行update操作

}

数据绑定模式:

<button class=”Jupdate-Item” data-itemid=”232”>修改</button>

$(“. Jupdate-Item”).click(function(){

var jthis=$(this);

var itemId=jthis.data(‘itemid’);

// 调用更新页面

});

看上去还要复杂一点,但是为什么要这么做?

a. 一点也不复杂,DOM只绑定数据和触发的class等,没有在DOM里面嵌套一句javascript语句。

b. 方便前端调试,HTML片段和js完全分离。

c. 绑定的事件都是匿名方法,在dom节点回收后,绑定的事件没有引用也被回收。

再来看看成熟的框架用的模型:

//bootstrap的事件绑定,dom元素上没有onclick事件。

<a class="close" data-dismiss="alert" href="#">&times;</a>

this.$element = $(element)

.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this));

44

4.2 jquery常用的事件绑定

参见以下博文:

http://my.oschina.net/davidzhang/blog/408969

转载于:https://my.oschina.net/davidzhang/blog/411672

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值