< src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript"> 刚开始研究jeecms的时候很纳闷,找不到首页的加载页面。。经过一番仔细研究,发现这个加载还是经过了很多曲折的过程的。整个程序的架构师ssh+freemarker模板构成的,所以先要熟悉freemarker模板技术。
先看web.xml文件,其中欢迎页面有:
接着再看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>
struts收到请求以后,将请求转发到core.dynamicSystemAct这个对象,注意这个这个class并不是真正的类,是类的别名,由spring通过标注@Controller进行绑定,web应用上下文可以通过classpath自动扫描到这个类。
- @Controller("core.dynamicSystemAct")
- 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,然后通过查找下面的配置信息
- <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>
注:其他的请求过程类似,先找到命名空间,然后找到对应的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:ChnlList和CommentList等。里面使用struts2标签@s.action来请求数据,整个的index.html页面就是这么加载出来的。通过freemarker引擎来解析数据模型,最后显示到前台,展现给客户
相关推荐
同时,性能优化也是Jeecms二次开发中的重要考虑因素,包括页面加载速度、服务器资源占用等。 综上所述,Jeecms的二次开发涉及到的内容广泛,涵盖Java编程、MVC架构、模板引擎使用、数据库管理、安全防护以及测试...
UEditor的引入,无疑提升了Jeecms在内容创作方面的专业度,使得编辑过程更加直观和高效。 在使用"ueditor for jeecms"时,首先需要下载压缩包,并从中解压出UEditor的相关文件。这个压缩包中的唯一文件名"ueditor...
此外,文档可能还会介绍如何进行页面元素的动态加载和交互效果的实现,以提升网站的吸引力和互动性。 3. **aa.txt** 这个文件名看起来像是一个临时或备忘性质的文档,可能是开发过程中的笔记、问题记录或者待办...
3. 执行表结构脚本:加载`oracle10g-jeecms-table.sql`,按照脚本中的顺序逐条执行DDL语句,创建Jeecms所需的所有表。 4. 初始化数据:接着执行`oracle_jeecms-initdata.sql`,将初始数据导入到已经创建好的表中。 ...
在Jeecms的开发过程中,主要涉及以下几个核心模块: 1. **内容管理** - 内容管理是Jeecms的核心功能,允许管理员添加、编辑和删除页面内容以及专题。内容可以通过不同模板进行展示,以满足不同的页面布局需求。 -...
CMS的主要目的是简化内容的创建过程,使得非技术人员也能轻松管理和更新网站内容。CMS通常具有以下特点: - **基于模板的设计**:用户可以通过预设的模板来快速构建网站,无需编写复杂的代码。 - **快速开发**:相比...
以上四个标签是Jeecms2012版中常用的几个标签,它们不仅简化了开发过程中的代码编写工作,也极大地提升了网站的功能性和用户体验。合理运用这些标签能够帮助开发者构建出更加高效、易维护的Web应用程序。
因此,首页模板需要使用`[@cms.ArtiListchnlId=.../`这样的标签来动态加载数据。 2. **栏目页**:栏目页用于展示某一类别下的文章列表,可以通过`[@cms.ArtiListchnlId=.../`等标签来实现。同时,为了增强用户体验...
2. **手把手教你用JEECMS建站**:分为三个部分详细介绍建站的全过程。 3. **轻松给网站配置留言板**:通过Jeecms内置的功能实现留言板功能。 4. **JEECMS网站管理系统栏目模型管理**:介绍如何管理和编辑网站的栏目...
在Java和JSP的学习过程中,Jeecms是一个非常实用的实践平台,可以帮助开发者深入理解这两种技术的结合应用。 Java是面向对象的编程语言,以其跨平台的特性而广受欢迎。学习Java,你需要掌握其基础语法、类与对象、...
在实际开发过程中,Jeecms微信小程序可能会包含以下几个关键技术点: 1. **接口设计**:需要设计合理的RESTful API,以便于小程序调用,这些接口通常包括登录验证、新闻列表获取、新闻详情查询、评论发表等功能。 ...
同时,为了提供良好的用户体验,你需要在刷新过程中显示一个指示器,比如旋转的菊花图标,告诉用户数据正在加载。 自定义的PullToRefreshView相比现成的库,如SwipeRefreshLayout,最大的优势在于灵活性。开发者...
三 首页的加载过程 在浏览器中输入http://localhost:8080/jeecms,回车 首先进入配置文件web.xml, <context-param> <param-name>contextConfigLocation</param-name> <!----> <param-value> /WEB-INF/...
11. **性能优化**:Jeecms可能会包含缓存机制,以提高页面加载速度,减少服务器压力。 12. **API接口**:Jeecms可能提供API接口,允许与其他系统集成,如CRM、ERP等,实现数据的同步。 安装Jeecms V5.1时,用户...
1. **新特性**:3.1.9版本在2.3.1的基础上增加了更多的自定义选项,如生成的实体类是否启用懒加载、是否生成equals()和hashCode()方法等。 2. **性能优化**:针对大量表的同步,3.1.9版本进行了性能提升,处理速度...
- 静态文件策略:首页和频道页定时生成,详情页实时生成,商品删除时相应页面需重新生成。 3. **静态文件命名与目录设计**: - 固定目录和静态文件名用于频道页和概览页,定时生成时覆盖旧文件,简化管理。 - ...
10. **JSP生命周期**:理解JSP页面从加载到销毁的过程,包括编译成Servlet、初始化、服务、销毁等阶段。 通过这个项目,你不仅能学习到JSP的基本知识,还能接触到实际的项目开发流程,提升自己的实战能力。记住,...