1. 模块命名、数据库表命名、域模型命名、各分层的类/方法命名、页面的命名;
模块命名:
a. 包命名:com.project_name.module_name.action/service/dao/ws;
service的实现都置于com.project_name.module_name.service.impl下;
b. 接口命名遵守XxxxService,接口实现遵守XxxxServiceImpl;
2. 包的设计、页面的层次结构设计(jsp/css/js等文件的结构);
3. log、异常(声明式异常)的约定设计;
4. 链接、按钮、表单提交的统一方式;通用式Ajax调用与页面跳转统一模型;
5. 响应一个请求的分层结构约定,列举几个示例(常规调用、Ajax调用、WebService调用、提供WebService暴露、硬件设备接口调用);
6. 验证代码质量的约定,如JUnit、EMMA、FindBugs、CheckStyle、PMD的使用;Hudson持续集成需注意的;
7. 压力测试、防内存泄漏测试;
基础CSS:标签的各种状态的样式;表格单双行的样式;
开发一个Action请求的响应:
前置条件:该Action涉及的Entity及EntityName.hbm.xml已经准备好。
步骤:
a. 前端页面触发Action的请求;
统一采用全路径请求,URL格式:
1> basePath/web/moduleName/*_ *.action {1} EntityName,{2} ActionMethodName
2> basePath/web/moduleName/gotoXxx.action (无需调用Service,直接跳转)
包括jQuery的Ajax方式和非Ajax方式;
包括表单提交;
参数设值的方式:
1> URL参数:
basePath/web/moduleName/*_*.action?entity.propertyName=paramValue¶mName=paramValue
2> 或
另外,对于表单的提交,前后台都必须做数据校验,SWDF已提供了此能力,进行简单的配置即可,前台直接提供类似以下代码即可,点此查看前端校验详细规则说明。
前端校验示例;
后台数据校验,点此查看校验详细说明.
b. 配置struts-moduleName.xml;
直接跳转示例;
调用Service示例;
c. 开发对应的{EntityName}Action类;
该类必须继承com.hikvision.swdf.xx.BaseAction,该Action类有一个关键属性entity,即泛型Entity类的一个实体,该属性默认填充好了请求提交过来的entity对应参数(即entity.propertyName);
d. 开发Service接口和Service接口实现,并在Action中通过set方法注入该Service;
接口文件:UserService
接口实现:UserServiceImpl
注入Service
e. 开发DAO,DAO继承com.hikvision.xxx.HibernateBaseDAO;
示例
f. 配置applicationContext-*.xml;
配置DAO bean、Service Bean、Action Bean及注入的配置;
g. 测试;
备注:
1. Action建议统一遵守通配符的约定,basePath/web/moduleName/*_ *.action {1} EntityName,{2} ActionMethodName
2. 统一命名规则:接口类似UserService,接口实现类型UserServiceImpl;(IUserService和UserServiceImpl)
开发一个Action调用关联应用提供的WebService
前置条件:该WebService?WSDL可正常获取
步骤:
a. 配置applicationContext-wsclient.xml;
Spring管理第三方WebService实例bean
Jaxws-client配置代码
b. 生成第三方WebService接口文件;(提供系统自动生成)
自动生成代码
c. 页面调用Action请求,Action中注入WebService实例bean;
Action对
1