FREECMS栏目静态化代码流程
htmlChannel.jsp:html_channelDo.do
-->HtmlAction.java:channelDo():channelService.html()
----默认模板在此初始化templete/freecms/channel.html
-->ChannelService.java:html():htmlPage():FreeMarkerUtil.createHTML()
----为什么会生成question/index.html?“栏目管理”设置中所选栏目的页面标识pagemark
-->FreeMarkerUtil.java:createHTML():template.process()
----Template已经被封装跟不进去,代码显示就是一群模板代码,如图
-->QuerstionPageDirectiv.execute
----所有定义标签的execute方法(自定义标签在后台都以**Directive.java存在,需要继承BaseDirective类和实现TemplateDirectiveModel接口,在cn.freeteam.cms.util. FreeMarkerUtil类中进行绑定,以后就能在模板中使用<@+绑定时定义的标签名字来使用它了)
FREECMS的信息页面静态化和首页静态化代码流程跟栏目静态化流程基本上是一样的,需要注意的是信息页面静态化时有一点不同的就是它是通过js去submit从而调用action的。
FREECMS信息静态化代码流程
htmlInfo.jsp: <fs:operButtons />:htmlInfo.jscreateHtml:form1.submit():html_infoDo.do
-->HtmlAction.java:infoDo():infoService.html()
-->FreeMarkerUtil.java:createHTML():template.process()
FREECMS首页静态化代码流程
HtmlIndex.jsp:html_indexDo.do
-->HtmlAction.java:indexDo():siteService.html()
-->FreeMarkerUtil.java:createHTML():template.process()