`
lvjun106
  • 浏览: 438239 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖
社区版块
存档分类
最新评论

分享:运用模板模式整合多个业务意义相近的页面

 
阅读更多

产品升级。在现有产品中增加了一个新的模块,模块主要是把发票功能集成到现有的系统中。
我负责发票上的基础数据的操作,由于基础数据非常多,且每一个基础数据都要用一个页面去设置。
起初把一些业务意义相近,操作相近的功能集中起来,整合后还是出现了10+的页面。
对于10+的页面中有些查询字段,录入字段都是相近的,而且页面排版都相似,所以决定用模板模式,整合当前页面。
1.在模板页面上定义共用区域,共用区域内放字段,字段的校验等。
2.在模板页面上定义定制区域,定制区域交给子页面去处理。

我们现有的前台技术是JSF,所以再加上FACELETS很符合上述思想。
共用区域:
    1.整合了查询页面的共用查询字段和查询字段的检验逻辑。
    2.整合了查询页面的列表显示区域,列表内的显示内容交给子页处理。
    3.整合了编辑页面的共用录入字段和录入字段的检验逻辑。(我们的UI设计中编辑页面其实是和查询页面在一起,即点击列表中一行,出现“对话框”层。层中显示了编辑字段。)
对于上述三点。技术上作出如下处理:
1.定义模板查询页面的显示框架。
    <html>
    <head>
    <script>
        <common-script />--交给模板页面处理
        <custom-script />--留给子页面添加,在FACELETS中用<ui:insert name="customScripts"></ui:insert>
    </script>
    <style />同script一样。
    <body>
        DIV层定义各个显示区域。依然用<ui:inert />定义子页面的内容。其实这就是facelets的强大之处了。
    </body>
    </html>
2.定义模板查询页面的JS框架
    在页面初始化时定义页面上各个区域的初始化动作。
例如
$(document).ready(function(){
    queryTemplate = new QueryTemplate();
    queryTemplate.registerSection(); //把页面中的各个部分注册进去。
    queryTemplate.init();//页面初始化
})

QueryTemplate.prototype = {
    init:function() {
        //遍历所有section,并调用section的初始化工作(包括页面元素的检验,注册按钮事件等)
    }
   
    registerSection:function() {
        this.addCommonSection();
        this.addCustomSection();//子页面重载此方法,加入子页面的内容。
    }
.......
}
注:页面中使用了一个JS VALIDATION的框架,基本原理是页面加载时有一个ValidationManager,对于某个控件加入检验的话,就直接注册一个Validation到ValidationManager即可。
调用检验时,直接用validationManager的valiateAll。
3.后台V,C层设计
     VO,PO:定义CommonCriteria,CommonDTO,CommonSearchResult,CommonJavaBean。
        子页面中涉及到的对象都继承以上类。
    service层定义CommonService处理一些公用的逻辑。比如查询,校验时间等。
    DAO层定义通用查询的sql。用JAVA泛型处理CommonJavaBean

 

在这里分享一下自己的一些理念和作法。希望大家喷饭,扔砖。也希望大家也能分享自己的一些经验。

 

分享到:
评论

相关推荐

    精美苹果风格多用途PPT模板.pptx

    3. **多用途性**: 不仅适用于商业领域,在教育、科研等多个领域都有着广泛的应用前景。 4. **兼容性**: 该模板支持Microsoft PowerPoint和其他兼容PPTX格式的软件,方便用户根据自身需求进行编辑与调整。 5. **高质量...

    大数据可视化展板通用模板(Html模板、大数据模板、大屏echarts模板).zip

    大数据可视化是一种将复杂的数据集转化为易于理解的图形或图像表示的技术,它可以帮助用户洞察数据背后的趋势、模式和关联。在本资源中,我们有一个专门针对大数据可视化的通用模板,主要包含Html模板、大数据模板和...

    xx区智慧旅游综合服务平台(Html模板、大数据模板、大屏echarts模板).zip

    6. **数据分析与挖掘**:通过运用机器学习算法,平台可以预测旅游趋势、游客行为模式等,帮助优化服务和营销策略。例如,通过分析游客停留时间、消费记录,可指导商业布局和推广活动。 7. **系统集成**:智慧旅游...

    ssh框架整合jar包

    此外,SSH框架整合还涉及到异常处理、安全控制、国际化等多个方面,开发者需要对每个框架有深入理解,才能灵活运用并优化性能。 虽然这个压缩包不包含配置文件,但提供了一个起点,开发者可以根据自身项目需求,...

    万能打印模板

    综上所述,"万能打印模板"技术涵盖了Web开发、报表生成、数据处理和打印控制等多个方面,是构建企业级应用时不可或缺的一部分。通过深入理解这些知识点,并熟练运用C#和ASP.NET,开发者可以构建出满足各种打印需求的...

    SSH的经典整合

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它继承了Struts1的优点并引入了更多现代框架的特点。Struts2通过拦截器(Interceptor)机制,实现了请求的处理和业务逻辑的解耦。它提供了...

    后台模板集

    而“模版”一词则强调了这是一种可复用的设计模式,可以快速应用到多个项目中。 在文件名称列表中提到的“后台模版”,可能是一个文件夹或者压缩文件,里面包含了各个模板的HTML、CSS、JavaScript以及其他相关资源...

    ssh整合框架开发宠物管理系统

    SSH整合框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架。这个宠物管理系统项目利用...同时,项目也提供了数据库设计、前端界面制作、异常处理、安全性控制等多个方面的实践经验。

    JAVA软件工程师的简历模板.docx

    - 特点: 使用了多个设计模式,如DAO模式、DTO模式等。 2. **题库管理系统** - 技术栈: SSH框架整合模式、AJAX、Javascript、CSS等。 - 功能模块: 教师登录、出题、答案验证等。 - 特点: 采用B/S模式,实现Word...

    WPF相关教程及源码整合2(教程)

    本教程整合了WPF的多个学习资源,其中包含两部分源码:`FamilyShow` 和 `SlideShowSource`。这些源码是实践操作的好材料,可以帮助开发者深入理解WPF的实际应用。 ### FamilyShow项目 `FamilyShow` 是一个基于WPF的...

    Velocity模板引擎 v2.2.0.zip

    它是Apache软件基金会下的一个开源项目,基于MVC(Model-View-Controller)设计模式,致力于将视图逻辑与业务逻辑分离,使得开发者可以专注于应用的业务逻辑,而将页面展示交给Velocity来处理。v2.2.0是其一个稳定...

    vue-template:vue模板vue vue路由器vuex axios jssdk

    2. Vue Router:Vue Router 是Vue官方的路由管理器,它允许你在多个组件之间进行导航。通过定义路由规则,可以实现页面间的平滑过渡,同时支持命名路由、动态路由参数和程序化导航,极大地提升了用户体验。 3. Vuex...

    S2SH整合项目——ePortal(电子商务平台)

    总之,"S2SH整合项目——ePortal"是一个典型的Java Web开发案例,涵盖了多个关键技术和实战技巧,对于想要提升自己在电子商务平台开发领域的IT从业者来说,是一个极具价值的学习资源。通过深入研究和实践,不仅可以...

    oa静态页面

    总之,OA静态页面的开发涉及到多个层面的技术,包括Spring、Hibernate、Struts三大框架的整合运用,HTML页面的设计和优化,以及可能的模板引擎、缓存策略和SEO技术。理解和掌握这些知识点,对于构建高效、易维护的OA...

    hibhernate-struts2实现的学生管理系统

    总结起来,"hibhernate-struts2实现的学生管理系统"是一个综合运用了Java Web核心技术的项目,通过整合ORM框架Hibernate和MVC框架Struts2,实现了高效、灵活的学生信息管理。开发者可以在此基础上进一步学习和掌握...

    spring3+mybatis3+spring3 mvc整合带数据库基础操作

    这个整合过程涉及到多个层次的技术,包括依赖注入、数据访问、模型视图控制器的运用等。下面我们将详细解析这些关键知识点。 首先,Spring3是Java领域广泛应用的轻量级框架,它以其强大的IoC(Inversion of Control...

    freemark 2.3.19 中文教程

    FreeMarker 是一个强大的模板引擎,常用于Web应用中的动态页面生成。它允许开发者将业务逻辑与页面展示分离,使得开发者可以专注于数据处理,而设计师则专注于页面设计。本教程聚焦于FreeMarker 2.3.19版本,该版本...

    struts2标签大全

    - `s:checkboxlist`和`s:radiolist`:分别用于创建多个复选框和单选按钮组,可以绑定到List或Map。 3. **Display标签** - `s:property`:显示Action中的属性值,可以格式化日期和数字。 - `s:displayname`:显示...

Global site tag (gtag.js) - Google Analytics