基于springside构建:
包结构说明:
Utils中存放系统公用类,其中SysConstants类存放系统常量。
Workflow包存放与工作流相关的信息,包含jpdl文件,流程授权类,流程监听类等。
系统整体层次结构:
POJO:采用注解形式,具体可以参照系统中已有的entity中的注解。
DAO :处理与数据库交互的功能 所有DAO的基类为HibernateDAO<Entity,Long>
基于泛型,使用注解形式将其注册为bean。所有类名上面加上注解:@Repository,不需要接口类,通常情况下DAO不需要写任何代码,因为多数查询,修改,删除方法其父类已经提供。
SERVICE:事务管理,业务过程,系统核心业务逻辑所在 由spring 管理事务 使用spring注解将其注册为bean,所有类名上面加上:
@Service
@Transactional
为了减少类的数量,通常是一种业务过程对应一个Manager,比如系统的安全模块对应一个Manager,而不是一个业务实体对应一个Service,当然,这由你自己根据实际进行决定。
仍然采用IoC的形式获取其它的bean,只需要将你的bean 加上注解:@autowired即可。 spring会根据类的类型进行注入。
通常情况下Service也不需要接口。
Action:MVC采用struts2,所有Action的基类为CrudActionSupport<T > 同样是基于泛型。
注意:所有action方法的返回结果值通常情况下是一致的:比如
查询(方法名为list )跳转返回 SUCCESS
添加或者修改 (方法名为input)跳转返回 INPUT;
添加或修改(方法名为SAVE)成功或者delete(方法名为delete)后返回RELOAD
同样Action中对manager的注入是采用 @autowired 不需要get/set方法。
注意:为了保证代码的一致性,请不要在Action中直接注入DAO 而且DAO是不在事务管理中的。
系统查询功能的实现:
系统查询的功能由springside实现,可以不限字段,不限条件,而且不需要自己拼写SQL语句:具体方法为:
在查询页面上写查询字段,比如<input type=”text” name=” filter_EQS_name” value="${param[' filter_EQS_name ']}" >
关键是这个name:filter_EQS_name 其中filter为固定前缀,EQ表示equals,代表SQL语句中的”=” ,当然还有LIKE,LT,GT,LE,GE。”S”代表你的这个字段为String类型,还可以写I(Integer),N(Double),D(Date)等,注意:Double类型为N!最后为你的字段在hibernate POJO中的字段名。
如果你想这个查询框既可以根据字段1模糊查询,也可以根据字段2模糊匹配,你可以这么写:name=”filter_LIKES_NAME_OR_EMAIL_OR_LOGINNAME”
在Action中你需要写:
List<PropertyFilter>
filters = HibernateWebUtils.buildPropertyFilters(Struts2Utils.getRequest());//收集查询条件
调用你Manager中的search方法,你的search方法大约会是这个样子:
@Transactional(readOnly = true)
public Page<User> searchUser(final Page<User> page,
final
List<PropertyFilter> filters) {
return userDao.findPage(page, filters);
}
这个方法连分页也包含了。
系统分页功能的实现:
在查询页面上你需要写上:
查询form的name为:mainForm
在form中写入:
<input type="hidden"
name="page.pageNo" id="pageNo" value="${page.pageNo}"/>
<input type="hidden"
name="page.orderBy" id="orderBy" value="${page.orderBy}"/>
<input type="hidden"
name="page.order" id="order"
value="${page.order}"/>
然后
通常在form的结束之前导入:<%@ include file="/common/pages.jsp" %>
页面部分即结束:
在Action中加入全局变量:
private Page<T> page = new Page<T>(); 加入get/set方法
如果你想在查询之前根据某字段进行排序,你可以在查询之前写上:
if (!page.isOrderBySetted()) {
page.setOrderBy("id");
page.setOrder(Page.ASC);
}
然后在查询时将page对象传入即可。
未完待续....
- 大小: 6.3 KB
- 大小: 5 KB
- 大小: 62.3 KB
分享到:
相关推荐
《系统设计说明书》参考模版2 系统总体设计 1 2.1 系统运行环境 1 2.2 系统结构图 2 2.3 系统运行图 2 2.4 系统部署 2 2.5 非功能特性设计 2 2.6 系统兼容性 2 3 业务基础件概要设计 2 3.1 设计总揽 2 3.2 XXX业务...
系统设计说明书一些基本格式 一、引言 1.摘要:摘要说明所设计的系统的名称、目的和功能。 2.背景: (1)项目的承担者 (2)用户 (3)本项目和其他系统或机构的关系和联系 3.工作条件/限制:说明本项目开发...
成本核算系统设计说明书 1 引言 1 1.1 编写目的 1 1.2 读者对象 1 1.3 文档编写说明 1 1.4 项目背景 1 1.5 基本定义 1 1.6 参考资料 1 1.7 变更历史 1 2 任务概述 2 2.1 目标 2 2.2 ...
神州数码银行综合业务系统设计说明书.docx
数据库课程设计,关于停车场收费系统的系统设计说明书
第一章 前言 1.1. 文档目标 【描述该文档的编写目的】 1.2. 名词术语 【描述该系统相关的概念和术语,如...【描述系统设计和实现相关约束条件,包括设计规范、接口规范、开发工具、项目结构、技术框架、代码规范等】
银行业务管理系统设计说明书.pdf
银行业务管理系统设计说明书.docx
银行业务管理系统设计说明书.doc
卫生系统 业务设计 概要说明书 卫生系统 业务设计 概要说明书
概要设计说明书(项目描述+功能结构图+业务流程图).docx概要设计说明书(项目描述+功能结构图+业务流程图).docx概要设计说明书(项目描述+功能结构图+业务流程图).docx概要设计说明书(项目描述+功能结构图+业务流程图)....
目 录 第一章 班务管理信息系统的基本需求分析 ... 第三节班务管理信息系统的原型设计说明 第四章系统设计总结 第一节项目实施中各个工作流程及时间分布 第二节本人系统设计的优点和缺点 第三节对教学和实习的建议
某市公安局综合业务信息系统详细设计说明书DOC 46页的Word文档
二手车业务管理系统设计说明书.doc
银行信息系统设计说明书,有流程图,自己制作 设计书概要: 系统构架设计 软件结构设计 数据库设计 代码设计 输出设计 输入设计 系统构架设计 根据系统架构设计的步骤,我们分析了有关系统的业务划分 情况,考虑到...
中华网合同管理系统V2.0设计说明书 4 1. 系统概述 1.1 主要功能概述 中华网合同管理系统主旨在于提供合同的管理功能供公司业务人员及合同管理人员 使用。其中包括合同的添加、删除、修改、查询并生成excel...
项目系统架构设计说明书 办公信息系统:简称 办公信息系统:简称 OA 、OA 系统,本项目即为 系统,本项目即为 系统,本项目即为 系统,本项目即为 OA 系统 V2.0 的开发。 的开发。 OA 门户子系统 :在 OA 系统一...
银行核心业务系统总体设计说明.doc
数据结构课程设计设计一个计算机管理系统完成图书管理基本业务。设计内容如下: (1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量; (2) 读者信息包括读者编号、姓名、借阅记录; (3) 对书号建立索引...