WMframework提供了固定,规范的一体化代码编写过程,最终目的即为清晰的系统开发流程、减少开发人员代码编写时间并大大降低其工作量、方便项目组全局实现代码的风格的规范统一等
简要描述
1、确认页面元素
参照用户需求及相关功能设计文档,确认当前表单页面元素和整体风格布局;如 用户基本信息维护中可能涉及的html Dom 表单元素可能有:用户名、密码、组织机构、帐号、有效期等。
2、定位功能数据表
以详细设计文档为标准,查找数据库设计及PDM模型中主要操作的数据表。如 用户基本信息维护可能涉及的表有:用户帐号信息、用户基本信息、操作日志、组织机构等
3、业务功能原型实现
使用WMframework代码生成工具(系统),创建并生成相应功能代码:jsp、domain、sqlmap、s2配置、sping配置等
4、功能处理扩展、定制
编辑已生成代码,使其附和并满足当前业务功能实现需要。
5、前台框架引入
检查修改用户表单jsp页面是否正常引入前台js提交、处理框架(当前部分已由系统代码自动生成,仅需做check即可),是否正确完成用户提交请求处理。
6、后台框架配置、变更
常规情况下,WMframework已经实现有后台通用action、service、dao处理流程,若非个性化特殊情况下,不提倡自定义实现action、service、dao等。
check当前domain(pojo)是否完全满足用户表单处理的数据模型映射,适当做出修改、变更
前端展现页面编写
1、代码创建
用户表单jsp页面当前提倡使用自动代码生成后,修改布局及提交数量方式。对于多条记录同时提交方式需要自行修改实现,当前代码生成器仅实现一个domain,单记录提交的方式。
example(一个数据域某个属性页面展现):
1 2 3 4 5 6 7 8 9 10 | < input type="text" class="textfile" style="width: 80%" issave="true" <%-- 当前field是否提交标志 --%> id="userId" fieldname="userId" <%-- 当前field对应数据对象domain属性名称 --%> require="true" <%-- 当前field是否进行校验(validator) --%> showmessage="用户ID必填!" <%-- 当前field校验(validator)未通过后给出的提示信息 --%> vos="ADomain" <%-- 提交表单所属domain,对应java中domain对象名 --%> vo="ADomain" <%-- 提交domain群组中,单条数据唯一标志,用于一次进行多条相同domain数据提交 --%> funcname="WM_insertA" <%-- 当前domain执行数据库操作sqlmap节点名称 --%> /> |
2、 代码修改
修改页面布局,个性化样式、记录提交数
3、 数据提交实现
当前部分主要有关联的页面按钮触发事件基于js的function实现,且原型也自动生成,单数据提交时无需修改,其余需要修改。
若由自动生成代码则仅实现数据提交方式一,即页面元素构建枚举数组获得XMLDOC对象方式
example:
1 2 3 4 5 6 7 8 9 10 11 12 | function dosave() { var ac = new WMaction(); //创建前台提交执行接口js对象 var po = new WMparamObject(); //创建前台数据表单参数js对象 po.setActionType( "0" ); //当前操作类型 po.setForm($( "aForm" )); //当前提交domain所在form po.setUrl(cps+ "/commonAction.action?action=add" ); //当前请求发送路径 po.setTextObjId( "textdiv" ); //按钮承载容器 po.setHitObjId( "hitDiv" ); //进度提示承载容器 po.setIsasy( true ); //请求发送方式(异步、同步),默认为异步 ac.setParamobj(po); //参数对象传递 ac.execute(); //前台表单请求执行触发 } |
后台处理实现
1、总控制器响应接口
当前部分由ParentsAction.java完成,它形如阀门一般管理着所有request请求的进出。即全部的action从这个口进\出。
2、公用(或自定义)控制器处理
由于ParentsAction.java被定义为抽象父类,故各具体业务处理器须继承并扩展实现对于业务处理操作类型。
CommonAction.java公共处理器已实现常规的增、删、改、存储过程执行等操作,用户可在不满足下进行自定义扩展、重载等。
QueryAction.java 查询处理器主要完成涉及list列表、明细detail页面的数据抽取请求控制。
TreeAction.java 实现了js树形对象的查询加载操作。
3、XML字符串请求数据拆分读取可持久化domain对象
XmlMapping.java、BeanProperty.java 共同完成了数据对象domain到xml层次节点数据的拆分、格式化封装等
4、数据库交付、操作
基于开源ibatis的主要API接口实现了JDBC方式的数据库连接、数据编辑操作。
5、返回domain数据对象格式化生成XML格式
参考步骤3描述
6、 响应字符串数据写入repsonse
Command.java输出数据执行器主要完成不同方式数据的response响应输出。已实现方式 text/plain 文本数据、text/xml XML对象数据、Serialized Java Objects 可序列化对象等
7、前台js对象读取、渲染(提示)用户操作
在前台构建js框架中,WMservice.js承接了数据的响应操作,并依据用户参数对象WMparamObject.js中给出的操作类型,分派给相关服务子类(WMeditService 数据编辑、WMqryService 查询\树装载渲染、WMoptService 实时联动对象)执行业务处理
(注:本人文章均为原创,转载请注明出处!刀光剑影20110212写于深圳。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?