欢迎光临112期刊网!
网站首页 > 论文范文 > 教育论文 > 高等教育 > 基于模板技术的CMS在高校信息化建设中的应用

基于模板技术的CMS在高校信息化建设中的应用

日期:2023-01-13 阅读量:0 所属栏目:高等教育


  中图分类号:TP301

  文献标识码:A 文章编号:1672-7800(2015)005-0021-03

  作者简介:朱欣(1986-),女,江苏苏州人,硕士,苏州职业大学信息中心助理工程师,研究方向为软件测试、数据分析。

  0 引言

  信息化与互联网的发展推动着高校的信息化建设,开源内容管理系统(CMS)由于具有统一创建、管理信息发布、内容采集等功能,并具有安全机制防护等优点,近年来在企业[1-3]、金融等领域有着广泛应用。在教育行业[4],哈佛大学、北京大学等高校的部分应用也是基于开源CMS搭建的。CMS的种类繁多,国外比较著名的CMS系统有Drupal、Joomla,国内比较著名的有DEDECMS、JEECMS等。 根据构建语言和使用框架不同,又可分为基于PHP技术的CMS和基于Java技术的CMS。

  高校信息化建设目前面临着开发人员与经费不足等问题,利用开源CMS进行信息化建设,一方面可快速进行网站开发,减少人力成本,另一方面也避免了高校与软件企业合作中出现的业务需求沟通繁琐、软件维护升级成本高的缺点。对开源内容管理系统的功能构架JEECMS进行剖析,阐述了展示层Freemarker的工作机制。针对JEECMS模板标签使用的局限性,研究了如何利用模板技术,并在此基础上自定义扩展前台和后台标签,从而丰富页面模板的二次开发功能,能够针对不同业务特点开发符合实际需求的页面。

  1 模板技术介绍

  1.1 模板技术概要

  模板技术[5,6]是解决页面开发复用性差,提升内容表现形式和组织形式的一种有效的技术手段。比较流行的模板技术有Velocity和Freemarker,相较于Velocity,Freemarker可以进行国际化处理,支持日期、数字,并可进行宏定义。

  1.2 Freemarker概述

  FreeMarker 是一个免费的模板引擎,是一个基于模板生成文本输出的通用工具,使用纯Java 编写,被设计用来生成HTML页面,特别是基于MVC模式的应用程序。模板由FTL语言标记而成。Freemarker具有自定义宏、自定义函数、自定义模板文件加载器、缓存处理、异常处理等功能。使用FreeMarker可以更好地实现页面表现层与业务逻辑层的分离。

  2 JEECMS概述

  JEECMS采用SpringMVC3+Spring3+Hibernate3+Freemarker+HTML5技术架构,基于Java技术开发,具有稳定、安全、高效等特点,JEECMS可以跨应用服务器与操作系统平台,兼容多种浏览器,支持MySQL、Oracle、SQLServer等多种数据库。

  JEECMS系统分为前台应用服务系统和后台内容管理系统。前台主要负责不同模块内容的呈现,后台负责系统内容的管理,包括增、删、改等。

  在JEECMSV5基础上搭建信息中心部门网站的功能构架如图1所示。

  JEECMS的页面多为静态html页面,通过调用JEECMS自定义标签获得动态数据,重写CSS+DIV结构获得页面模板。现有标签采用Freemarker模板引擎,其依赖于现有的数据表结构,在此基础上针对现有框架提出自定义标签,以丰富页面展现形式。

  JEECMS中前台和后台调用标签的方式不同,使用的标签也不能通用。前台是通过实现Freemarker中的TemplateDirectiveModel接口来自定义标签,后台通过宏定义的方式自定义标签。以网站访问统计人数为例,后台页面中<@s。m "cms。function。statistic"/>的标签无法在前台页面中调用。

  3 前台标签定义

  以定义一个新标签cms_webcount为例,此标签用来实现在前台页面调用页面访问人数。自定义标签的具体流程如图2所示。

  (1)自定义数据表和hibernate映射文件。建立数据表和表相对应的hibernate配置文件。由于访问人数可通过计算JEECMS案例中已存在表jc_site_flow的行数算出,相应配置文件CmsSiteFlow.hbm.xml也已存在,故此步可省略。

  (2)定义实体类WebVisit、Dao接口和Dao接口的实现。

  (3)标签名和标签类配置。在jeecms-context.xml、jeecms-servlet-front.xml中定义标签名,在jeecms-context.xml中定义对应的标签类。

  (4)定义标签类WebVisitDirective。WebVisitDirective实现Freemarker的TemplateDirectiveModel接口类,重写execute方法。本例中对应标签较为简单,WebVisitDirective中直接调用Dao层。这也是自定义标签中最重要的一步。

  public class WebVisitDirective implements TemplateDirectiveModel {

  @SuppressWarnings("unchecked")

  public void execute(Environment env,Map params,TemplateModel[] loopVars,   TemplateDirectiveBody body) throws TemplateException,IOException {

  WebVisit webVisit = null;

  Map restrictions = new HashMap();

  long visitCount = webVisitdao.visitStatistic(restrictions)

  webVisit = new WebVisit();

  webVisit.setVisitCount(visitCount);

  Map paramWrap = new HashMap(params);

  paramWrap.put(OUT_BEAN,DEFAULT_WRAPPER.wrap(webVisit));

  Map origMap = DirectiveUtils.addParamsToVariable(env,paramWrap);

  body.render(env.getOut());

  DirectiveUtils.removeParamsFromVariable(env,paramWrap,origMap);

  }

  …

  }

  (5) 在ehcach-hibernate.xml文件中配置缓存。

  (6) 页面调用。在前台任何页面中调用如下标签,可获得页面访问人数。

  [@cms_webcount]

  ${tag_bean.visitCount}

  [/@cms_webcount]

  4 后台标签定义

  4.1 流程

  后台标签获取如图3所示。

  4.2 新建数据表和数据表配置文件

  在本例中建立数据表jc_test和配置文件CmsTest.hbm.xml。

  4.3 定义实体类业务层、Dao层、控制层

  新建实体类CmsTest业务层接口CmsTestMng、业务层实现类CmsTestMngImpl、Dao层接口CmsTestDao、Dao层实现类CmsTestDaoImpl、控制层CmsTestAct。其中控制层的关键代码如下所示:

  …

  @Controller

  public class CmsTestAct {

  private static final Logger log = LoggerFactory

  .getLogger(CmsTestAct.class);

  …

  @RequestMapping("/test/v_edit.do")

  public String edit(Integer id,HttpServletRequest request,ModelMap model) {

  WebErrors errors = validateEdit(id,request);

  if (errors.hasErrors()) {

  return errors.showErrorPage(model);

  }

  model.addAttribute("cmsTest",manager.findById(id));

  return "test/edit";

  }

  …

  }

  4.4 定义其它配置文件

  (1)在Spring配置文件jeecms-servlet-admin-action.xml中定义控制层配置。

  (2)在jeecms-context.xml中定义Dao层和业务层配置。

  (3)在ehcache-hibernate.xml中定义缓存配置。

  4.5 后台页面

  后台页面关键代码如下所示,其中${cmsTest.id}等为新定义的标签。

  <@p.table value=list;cmsTest,i,has_next><#rt/>

  <@p.column title="" width="20">

  <#t/>

  <#t/>

  <@p.column title="ID">${cmsTest.id}<#t/>

  <@p.column code="cmsTest.col1">${cmsTest.col1!}<#t/>

  <@p.column code="cmsTest.col2">${cmsTest.col2!}<#t/>

  <@p.column code="cmsTest.col3">${cmsTest.col3!}<#t/>

  <@p.column code="global.operate" align="center">

  <@s.m "global.edit"/> | <#rt/>

  ')) {return false;}" class="pn-opt"><@s.m "global.delete"/><#t/>

  <#t/>

  

  5 结语

  通过分析JEECMS如何自定义标签,减少了对开源CMS软件企业的依赖。高校可完全利用内部技术人员进行网站系统开发,制定出符合实际需求的页面模板。如何针对现有开源CMS框架进行功能模块的二次开发,研发高校自主CMS是下一步工作的重点。

本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/gaodengjiaoyu/200746.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学