主题 : jeecms演示站是怎么跳转到首页的咧
级别: 童生
UID: 6287
积分:23 加为好友
威望: 0 精华: 0
主题:1 回复:11
注册时间:2010-05-01
在线时长:0
11#   发表于:2010-05-22 10:05:28  IP:60.6.*.*
留名,这贴要顶啊
korven,胡主席说不折腾
级别: 童生
UID: 4444
积分:15 加为好友
威望: 0 精华: 0
主题:0 回复:13
注册时间:2010-03-15
在线时长:0
12#   发表于:2010-06-04 11:31:48  IP:58.76.*.*
它是怎么加载fckeditor.properties 文件的 需要这样绕来绕去的么?
级别: 童生
UID: 40279
积分:14 加为好友
威望: 0 精华: 0
主题:0 回复:9
注册时间:2012-10-30
在线时长:0
13#   发表于:2013-01-05 17:07:09  IP:59.69.*.*
Struts2收到index.do的请求后,先查找jeecms/core/struts-front.xml文件,发现如下通用action配置:
<action name="**" class="core.dynamicSystemAct">
<result type="chain">
<param name="namespace">${namespace}</param>
<param name="actionName">${actionName}</param>
</result>
<interceptor-ref name="exception"/>
<interceptor-ref name="domain"/>
<interceptor-ref name="cookieIdentity"/>
<interceptor-ref name="url"/>
</action>
把请求交给core.dynamicSystemAct对象,改对象所属的类为:com.jeecms.core.action.DynamicSystemAct.java,该类通过一句Spring的配置@Controller("core.dynamicSystemAct"),将其实例声明为core.dynamicSystemAct 。(Spring配置实际上如何产生作用,待研究)。

core.dynamicSystemAct对象接到请求之前,先执行4个拦截器的方法,设定参数,主要来看下<interceptor-ref name="url"/>拦截器的作用。该拦截器的定义配置在jeecms/src/struts-default.xml文件中,其对应的类为com.ponyjava.common.struts2.interceptor.UrlInterceptor。该拦截器对请求的路径做处理。

core.dynamicSystemAct对象接到请求,再执行其execute()方法,最后产生两个参数:namespace和actionName,此两个参数组成请求转发的路径,即:/jeedynamic/jeecms/Page.do,该请求通过查找jeecms/cms/struts-front.xml如下配置信息:
<package name="cms.front.page" namespace="/jeedynamic/jeecms" extends="empty-default">
<action name="Page" class="cms.cmsPageAct">
<result>${tplPath}</result>
<result name="pageCache" type="pageCache">${tplPath}</result>
<interceptor-ref name="exception"/>
<interceptor-ref name="chain"/>
</action>
</package>
将请求交给cms.cmsPageAct对象,该对象为com.jeecms.cms.action.front.CmsPageAct.java的实例。cms.cmsPageAct对象接收到请求后,执行execute()方法(继承自父类PageBaseAction.java)。初次进入,execute()方法根据条件执行sysIndex()方法,该方法执行完毕返回一个参数tplPath,值为:/WEB-INF/user_base/jeecms_com_www/template/article/default/index.html,即返回一个html文件路径。打开该index.html文件,发现里面有自定义的标签@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文件查看源代码,由多个ftl组成,以action_cms.ftl为例,该文件中通过使用freemarker标签的宏定义标签#macro,定义了几个数据模型:ChnlList和CommentList。每个宏里面使用struts2标签@s.action向请求数据,而html页面则使用这些数据模型来显示数据。

这个一定要顶,我研究了一下午,才看到这个帖子,和我顺过的结果一样。
为什么进入首页要弄的这么复杂?疑惑中……
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
14#   发表于:2013-01-05 17:11:49  IP:59.114.*.*
功成由勤,业精于勤。
|< < 1 2 共2页