`
lion222
  • 浏览: 121843 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

jeecms加载首页的过程

阅读更多

刚开始研究jeecms的时候很纳闷,找不到首页的加载页面。。经过一番仔细研究,发现这个加载还是经过了很多曲折的过程的。整个程序的架构师ssh+freemarker模板构成的,所以先要熟悉freemarker模板技术。

先看web.xml文件,其中欢迎页面有:

  1. <welcome-file-list>  
  2.     <welcome-file>index.jspa</welcome-file>  
  3.     <welcome-file>index.do</welcome-file>  
  4.     <welcome-file>index.html</welcome-file>  
  5. </welcome-file-list>  

 

接着再看jeecms/core/struts-front.xml配置文件,发现有个action的通用配置:

  1. <action name="**" class="core.dynamicSystemAct">  
  2.             <result type="chain">  
  3.                 <param name="namespace">${namespace}</param>  
  4.                 <param name="actionName">${actionName}</param>  
  5.             </result>  
  6.             <interceptor-ref name="exception"/>  
  7.             <interceptor-ref name="domain"/>  
  8.             <interceptor-ref name="cookieIdentity"/>  
  9.             <interceptor-ref name="url"/>  
  10.         </action>       

 

struts收到请求以后,将请求转发到core.dynamicSystemAct这个对象,注意这个这个class并不是真正的类,是类的别名,由spring通过标注@Controller进行绑定,web应用上下文可以通过classpath自动扫描到这个类。

  1. @Controller("core.dynamicSystemAct")  
  2. public class DynamicSystemAct   

 

在这个action执行之前,先要执行好几个拦截器。其他struts和webwork自带的拦截器不必说,主要说一下在程序里面自定义的几个比较重要的拦截器(定义在jeecms/src/struts-default.xml文件中)。

DomainNameInterceptor

UrlInterceptor

CookieIdentityInterceptor

然后执行action自己的execute方法,产生2个参数:

namespace = "/jeedynamic/" + sys;

actionName = "Page";

这2个参数决定了程序的走向,组成转发路径:/jeedynamic/jeecms/Page.do,然后通过查找下面的配置信息

  1. <package name="cms.front.page" namespace="/jeedynamic/jeecms" extends="empty-default">          
  2.     <action name="Page" class="cms.cmsPageAct">  
  3.         <result>${tplPath}</result>  
  4.         <result name="pageCache" type="pageCache">${tplPath}</result>  
  5.         <interceptor-ref name="exception"/>  
  6.         <interceptor-ref name="chain"/>  
  7.     </action>  
  8. </package>  

 

 

注:其他的请求过程类似,先找到命名空间,然后找到对应的acting进行处理。

将请求转发给cms.cmsPageAct对象,同上的道理,对应到控制器:com.jeecms.cms.action.front.CmsPageAct。拦截器处理完毕后,执行自己的execute方法,判断若是首页,则执行sysIndex()方法,返回一个模板路径tplPath:/WEB-INF/user_base/jeecms_com_www/template/article/default/index.html,找到这个文件,是文章对应的首页模板,里面有自定义的freemarker标签@cms,定义在配置文件freemarker.properties中:

auto_import="/WEB-INF/ftl_lib/ponyjava.com/index.ftl" as p, "/WEB-INF/ftl_lib/jeecms/index.ftl" as cms 

@cms标签所用的ftl模板文件为index.ftl。 打开index.ftl文件,includes了多个ftl,其中有action_cms.ftl,该文件用标签#macro,自定义许多directive:ChnlListCommentList等。里面使用struts2标签@s.action来请求数据,整个的index.html页面就是这么加载出来的。通过freemarker引擎来解析数据模型,最后显示到前台,展现给客户。

分享到:
评论
1 楼 zhaihq 2010-06-13  

相关推荐

    jeecms安装、导入myeclipse、配置文件说明及标签使用

    jeecms图文安装过程,导入myeclipse步骤,jeecms首页加载过程,标签的使用及自定义标签,怎样使用自己创建的表

    JEECMS

    JEECMS

    jeecms9.2源代码文件

    jeecms9.2源代码文件 环境软件可以从以下网址中获得 Jdk 7.0 下载址: http://java.sun.com/javase/downloads/index.jsp Tomcat7 下载地址:https://tomcat.apache.org/download-70.cgi MySQL 5.0.22 下载地址:...

    jeecms X1.0.1 正式版 源码包

     根据用户反馈新增和完善的功能还有很多,诸如:支持百度编辑器ueditor、用户模型、增加首页调用pv总量和访问者总量等,我们期待更多的用户能提出宝贵的建议,jeecms将根据大家的建议一一完善。 jeecms X1.0.1 ...

    JEECMS安装教程详解

    本教程主要对JEECMS安装步骤以及在JEECMS安装过程中常见的问题进行了详细的介绍与解答。

    jeecms9.2安装文件

    一、安装运行环境(JDK7+TOMCAT7+MYSQL5及以上,具体安装过程请参考本下载包中的相关说明文档); 二、将程序解压后的ROOT文件夹拷贝到tomcat安装目录下的webapps文件夹下(例如:D:\Tomcat7\webapps\),启动tomcat...

    jeecms 标签 使用说明

    jeecms 标签使用说明 jeecms 标签使用说明 jeecms 标签使用说明

    JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版是JEECMS面世以来发布的第一个正式

    五、面向未来的过渡,JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版本,具有更大的灵活性和稳定性;-一、系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台; 二、核心模板...

    JeeCMS 2012 源码包

    摘要:JSP源码,CMS系统,JeeCMS  jeecms v2012版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。  jeecms v2012版新增功能如下:  1、新增统计功能  1.1...

    jeecms6-src.z02.gz_jeecms src_jeecms6.1

    jeecms完整全功能版——源代码,压缩包3,去掉后最gz,配合压缩包1解压。

    jeecms v8.1 源码

    JEECMSv8.1是一款支持微信小程序、栏目模型、内容模型交叉自定义、以及具备支付和财务结算的内容电商为一体内容管理系统:通过后台的简单设置即可自定义出集新闻管理、图库管理、视频...doc/jeecms模板置标使用手册.doc

    JEECMS修改后台地址

    JEECMS后台地址修改:JEECMS修改后台地址比较麻烦,按照文档上的步骤操作可以进行修改

    JAVA开源CMS JEECMS v3.0

    感谢您使用JEECMS,系统使用过程中如遇到问题,请到JEECMS的官方网站http://www.jeecms.com 查看相关资料,或者加入JEECMS官方论坛(http://bbs.jeecms.com)发帖和大家一起交流,我们的技术人员和众多会员一起与您...

    jeecms数据库表结构详解

    jeecms 数据库表结构

    jeecms oracle 官方版本

    jeecms oracle 官方版本

    jeecms5.0的数据库

    就是jeecms5.0的数据库,直接放到mysql中执行就行了。很简单

    jeecms 数据库说明文档

    jeecms 数据库说明,此文档详细解释jeecms数据库的设计

    Jeecms标签使用手册

    Jeecms标签使用手册,内容非常详细。

    jeecms数据结构powerdesigner模型

    jeecms数据结构powerdesigner模型

    jeecms 源码包

    jeecms 源码包

Global site tag (gtag.js) - Google Analytics