主题 : jeecms演示站是怎么跳转到首页的咧 |
级别: 贡士
|
1# 发表于:2009-06-26 09:02:26 IP:119.116.*.*
|
||||
---|---|---|---|---|---|
级别: 贡士
|
2# 发表于:2009-06-29 15:16:19 IP:119.116.*.*
没人回答
|
||
---|---|---|---|
级别: 白丁
|
3# 发表于:2009-07-02 12:13:32 IP:113.224.*.*
jeems工程下web.xml里<welcome-file-list>
<welcome-file>index.jspa</welcome-file> <welcome-file>index.do</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> 安装后web容器一启动时设置欢迎页面了 |
||
---|---|---|---|
级别: 解元
|
4# 发表于:2009-07-03 14:58:35 IP:60.140.*.*
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页面则使用这些数据模型来显示数据。 本帖最近评分记录:
|
||
---|---|---|---|
级别: 秀才
|
5# 发表于:2009-08-23 16:00:02 IP:59.179.*.*
说得很详细,学习了
|
||
---|---|---|---|
级别: 白丁
|
8# 发表于:2009-10-17 20:55:26 IP:221.238.*.*
说的很好,谢谢。不过我不明白PageBaseAction.java里的String[] pathParams怎么设置的index值。能给解释下吗?
|
||
---|---|---|---|
级别: 童生
|
9# 发表于:2009-10-28 10:55:29 IP:222.216.*.*
这个地方是用了spring的注释驱动吧 @Controller("修改的名字"),那么比如用getbean的时候,参数就可以是getbean("修改的名字") |
||
---|---|---|---|
级别: 童生
|
10# 发表于:2010-04-20 15:57:19 IP:119.215.*.*
说的真不错,
不过下边的两个星号是“通用action配置” 吗? <action name="**" class="core.dynamicSystemAct"> |
||
---|---|---|---|