`
aben328
  • 浏览: 1460505 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

JEECMS 之 FCKeditor freemarker 浅谈

阅读更多

JEECMS 之 FCKeditor freemarker 浅谈

(2009-05-15 14:31:12)
<script></script>标签:

cms

freemarker

fckeditor

ftl

it

 

                    JEECMS (FCKeditor freemarker)

   最近开始接触到CMS(content managerment system 内容管理系统),其实知道的人都晓得可以用它来开发个人网站,是相当简单的,哪怕对于不懂程序的人只要别人将CMS封装的相当完美那么你也可以构造出属于自己的个性网站,而像我们这些懂点编程的是比较喜欢那些开源的cms系统,因为我们可以用自己的双手修改源码来创造属于自己的网站。

   好了,不废话了进入正题。通过查阅相关的资料了解到开发 JEECMS系统(cms大军中的一员)(为什么要了解开发呢?因为自己的使用的过程中感觉使用有点不太顺手)需要了解的主要知识包括FCKeditor(文本编辑器)、Freemarker(模板引擎)、以及相关J2EE知识(JEECMS它里面包括Struts2 Spring2 Hibernate3)

今天在这里主要要讲的就是FCKeditor和Freemarker

其实FCKeditor就是一个富文本编辑器,这个是国外开发的它基本感觉等同于以前在.net中用到的第三方控件FreeTextBox,关于它的使用请看下文:

首先建立一个web project ,name :prjFckEditor然后下载相关资源

FCKeditor.java 2.4 (FCKeditot for java)    jar文件
FCKeditor 2.6 (FCKeditor基本文件)

以下是下载地址:
http://www.fckeditor.net/download/default.html

将FCKeditor解压后整个目录copy到webroot下,然后将2个jar文件 copy至lib目录在讲FCKeditor.tld文件copy到prjFckEditor/WEB-INF/下

将下载后的FCKeditor工程src目录下的web.xml里的内容copy到咱们自己project的web.xml里进行合并,修改相关的设置
将SimpleUploader的Servlet的enadled参数值改为true(允许上传),而Connector Servlet的baseDir参数值它是用来设置上传文件存放的位置的,这个根据自己的情况来设置。

修改Servlet的映射:
/editor/filemanager/browser/default/connectors/jsp/connector和/editor/filemanager/upload/simpleuploader,需要在两个映射前面加上/FCKeditor,即改为/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector和
/FCKeditor/editor/filemanager/upload/simpleuploader

这里你要是觉得资源过于多,可以删除无关的文件:
删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件以外的所有文件
删除目录/editor/_source,
删除/editor/filemanager/browser/default/connectors/下的所有文件
删除/editor/filemanager/upload/下的所有文件
删除/editor/lang/下的除了fcklanguagemanager.js, en.js, zh.js, zh-cn.js四个文件的所有文件

再次修改配置文件FCKeditor下的fckconfig.js将里面的FCKConfig.DefaultLanguage='zh-cn'
将下面的属性值进行对应的修改:
FCKConfig.LinkBrowserURL= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;

FCKConfig.ImageBrowserURL= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

FCKConfig.FlashBrowserURL= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;

fckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式。
找到:FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键。


至此,相关的配置以前修改算是彻底的完成了,呵呵,FCKeditor相对来说比较适合开发新闻系统的发布,比方说我们请求一个action然后在execute方法里用session或者request的 setAttribute("key","value");这里的value就是一个网页的源码,我们只是通过FCKeditor将它保存到了数据库中,每次请求主页或者其他页面的时候在将它查询出来显示,
添加文件 /TestFCKeditor/test.jsp:
<%@ page language="java" import="com.fredck.FCKeditor.*" %>
<%@ taglib uri="/TestFCKeditor" prefix="FCK" %>
<script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script>

<%--
三种方法调用FCKeditor
1.FCKeditor自定义标签 (必须加头文件 <%@ taglib uri="/TestFCKeditor" prefix="FCK" %> )
2.script脚本语言调用 (必须引用 脚本文件 <script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script> )
3.FCKeditor API 调用 (必须加头文件 <%@ page language="java" import="com.fredck.FCKeditor.*" %> )
--%>

<%--
<form action="show.jsp" method="post" target="_blank">
<FCK:editor id="content" basePath="/prjFckEditor/FCKeditor/"
width="700"
height="500"
skinPath="/prjFckEditor/FCKeditor/editor/skins/silver/"
toolbarSet = "Default"
>
<%=reuqest.getAttribute("key")%>  <!-- 网页源码 -->
</FCK:editor>
<input type="submit" value="Submit">
</form>
--%>

<form action="show.jsp" method="post" target="_blank">
<table border="0" width="700"><tr><td>
<textarea id="content" name="content" style="WIDTH: 100%; HEIGHT: 400px"><%=reuqest.getAttribute("key")%>  <!-- 网页源码 --></textarea>
<script type="text/javascript">
var oFCKeditor = new FCKeditor('content') ;
oFCKeditor.BasePath = "/prjFckEditor/FCKeditor/" ;
oFCKeditor.Height = 400;
oFCKeditor.ToolbarSet = "Default" ;
oFCKeditor.ReplaceTextarea();
</script>
<input type="submit" value="Submit">
</td></tr></table>
</form>

<%--
<form action="show.jsp" method="post" target="_blank">
<%
FCKeditor oFCKeditor ;
oFCKeditor = new FCKeditor( request, "content" ) ;
oFCKeditor.setBasePath( "/prjFckEditor/FCKeditor/" ) ;
oFCKeditor.setValue( request.getAttribute("key") );
out.println( oFCKeditor.create() ) ;
%>
<br>
<input type="submit" value="Submit">
</form>
--%>

添加文件/prjFckEditor/show.jsp:
<%
String content = request.getParameter("content");
out.print(content);
%>
上面的show.jsp只是用来显示修改后的内容,我们只需要指定一个aciton来对数据库修改就可以搞定了。

编辑效果图:                 内容实现乱写的 相当于数据库查询出来的数据

JEECMS 之 FCKeditor freemarker 浅谈

 

 

Freemarker模板引擎
包括网页模板文件ftl(freemarker template language) 在通过与Freemarker的内置对象来结合就可以生成静态网页,但是这个ftl文件写起来是不好写的必须学习它的标签
下面写个简单的例子 hello.ftl
<html>
<head>
  <title>Welcome!</title>
</head>
<body>
  <h1>Welcome ${user}!</h1>
  <#list test as one>
  <a href="${ont.url}">${one.path}</a>!
  </#list>
</body>
</html>
其实它里面可以用html标签jsp标签等等,因为它兼容性很好
这里我用的是jsp+servlet结合,如下
   private Configuration cfg;
   public void init() throws ServletException {
 //初始化FreeMarker配置
        //创建一个Configuration实例
        cfg = new Configuration();
        cfg.setEncoding(Locale.getDefault(), "gbk");
        //设置FreeMarker的模版文件位置
        cfg.setServletContextForTemplateLoading(getServletContext(),"templates");   //templates是在webroot下的一个目录
     }
在doGet方法中加入如下代码:
     Map root = new HashMap();
     //放入对应数据key value
     testPO tp=new testPO();    
     tp.setPath("haha1");
     tp.setUrl("
http://baidu.com1");
    
     testPO tp1=new testPO();
     tp.setPath("haha2");
     tp.setUrl("
http://baidu.com2");
    
     testPO tp2=new testPO();
     tp.setPath("haha3");
     tp.setUrl("
http://baidu.com3");
     ArrayList<testPO> al=new ArrayList()<testPO>;
     al.add(tp);
     al.add(tp1);
     al.add(tp2);
    
     root.put("user","张航");
  
    
     root.put("test", al);
     //取得模版文件
     Template t =cfg.getTemplate("hello.ftl");
     //开始准备生成输出
          //使用模版文件的charset作为本页面的charset
          //使用text/html MIME-type
     response.setContentType("text/html; charset=" + t.getEncoding());
     PrintWriter out = response.getWriter();
   
     //合并数据模型和模版,并将结果输出到out中
     try
     {  
      t.process(root,out);// 用模板来开发servlet可以只在代码里面加入动态的数据
     }
     catch(TemplateException e)
     {
      throw new ServletException("处理Template模版中出现错误", e);
     }
这样就完成了用Freemarker来生成静态页面是不是比较简单,这里由于自己才开始接触到所以举得例子相对于高手或者接触此类已经有段时间的大虾们来说相当于玩笑一样,只是自己自己又了解了点新东西拿出来晒晒,这样也可以帮助学习它们的新手快速入门,呵呵!
  好了,今天的内容就简单讲到这里,以后有了更深步的体会还会继续拿出来晒晒的,大家有什么好的提议也可以对我说出来,欢迎高手指导指导!

分享到:
评论

相关推荐

    JEECMS自学帮助集合(包括FreeMarker)

    2. **JEECMS二次开发**:jeecms二次开发简要说明文档之开发篇.doc深入讲解了如何对JEECMS进行扩展和定制,包括自定义模型、模块开发等高级主题,对于希望提升JEECMS功能的开发者来说非常有价值。 3. **jQuery树型...

    freemarker及jeecms标签使用学习文档

    这篇学习文档将带你深入理解Freemarker的基础知识和高级特性,并通过Jeecms模板标签的使用,让你更好地掌握实际开发中的应用。 1. **Freemarker基础** - **模板语言**:Freemarker使用简单的文本模板语言,将数据...

    jeecms freemarker快乐到家分析

    Jeecms是一款基于Java技术的企业级内容管理系统,其采用了Freemarker作为模板引擎,使得开发者能够灵活地构建网站的前端页面。本篇文章将对Jeecms的Freemarker相关知识进行深入解读和分析。 首先,我们遇到的一个...

    在Eclipse下创建Jeecms项目图文指南

    6. **Jeecms与FCKeditor和FreeMarker**:Jeecms可能集成富文本编辑器如FCKeditor,用于内容编辑。FreeMarker是一个模板引擎,常用于生成动态网页内容。在Jeecms中,开发者可以利用FreeMarker来编写模板,结合...

    JEECMS2.0版本源码阅读

    JEECMS2.0 版本源码阅读笔记 JEECMS 作为一个基于 Java 的内容管理系统,具有强大的功能和灵活的架构。阅读 JEECMS 的源码,可以了解到其内部的实现机制和设计理念。在本文中,我们将对 JEECMS 2.0 版本的源码进行...

    jeecms3.2.2版本源码包

    3. **模板引擎**:Jeecms可能使用FreeMarker或Velocity作为模板引擎,允许非程序员通过简单的模板语法来设计和定制页面布局。 4. **内容管理**:作为CMS系统,Jeecms提供了内容创建、编辑、审核、发布等一系列功能...

    jeecms-src.rar_com.jeec_freemarker_freemarker struts2_单点登录

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用hibernate3+struts2+spring2+freemarker...

    jeecms开发文档

    Jeecms的CMS标签是其强大的特性之一,它们简化了页面元素的渲染,如文章列表、分类导航、评论等。CMS标签文档会列出所有内置的标签及其用法,如`{cms:article}`用于显示单篇文章,`{cms:category}`用于展示分类列表...

    JEECMS源码(hibernate3+struts2+spring2+freemarker +jquery +json等技术)

    JEECMS使用目前java主流技术架构:hibernate3+struts2+spring2+freemarker。AJAX使用jquery和json实现。视图层并没有使用传统的JSP技术,而是使用更为专业、灵活、高效freemarker。 数据库使用MYSQL,并可支持orcale...

    JeeCMS 2012 源码包

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

    jeecms v8.1 源码

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

    jeecms-2012.zip

    Jeecms使用FreeMarker作为模板引擎,提供了一种灵活的方式来分离业务逻辑和视图展示。开发者可以使用FreeMarker语法编写模板,实现动态数据的渲染。 7. **数据库设计** Jeecms-2012通常会包含一系列的数据库脚本...

    JEECMS 精简第二部分 共2

    JEECMS构建于Java EE平台之上,这意味着它利用了诸如Servlet、JSP、EJB、JMS、JPA等组件。Java EE提供了一个企业级的应用程序框架,能够处理并发、事务、安全性以及数据库集成等复杂问题,使得开发者可以更专注于...

    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 下载地址:...

    jeecms9.2-adminVue

    【Jeecms 9.2-adminVue:一个增强型的内容管理系统】 Jeecms是一个高度可定制的、基于Java技术的内容管理系统(CMS),以其强大的功能和灵活性受到开发者的青睐。9.2-adminVue版本是对该系统的一次重大更新,相较于...

    jeecms2012模板制作教程

    Jeecms2012基于MVC架构,使用Spring、Hibernate和Freemarker等主流技术。开发者需要对这些技术有一定的基础,以便更好地理解和操作Jeecms的模板系统。 2. **模板语言与结构** Jeecms使用Freemarker作为模板语言,...

    jeecms X1.0.1 正式版 源码包

    在二次开发方面,jeecmsV6支持元件式无限插件扩展方式,开发者根据jeecms的插件开发标准所开发出来的插件,插件与jeecms是平行的,无论是插件升级还是jeecms系统升级,都可以实现独立升级,插件与插件、插件与jeecms...

    SpringMVC3+Spring3+Hibernate3+Freemarker+HTML5的开源项目jeecms

    这个开源项目"jeecms"集成了上述技术,创建了一个功能完善的Web应用。SpringMVC处理请求,Spring提供依赖注入和事务管理,Hibernate负责数据持久化,Freemarker生成动态页面,而HTML5则提升用户体验。这样的组合在...

    jeecms5.1-src.zip 源码包

    Jeecms基于MVC(Model-View-Controller)设计模式,采用Spring框架作为基础架构,集成了Hibernate进行数据持久化处理,同时利用Freemarker作为模板引擎,实现了内容展示与业务逻辑的分离。这种架构使得Jeecms具备...

    jeecms-2012.rar

    4. **模板引擎**:Jeecms可能采用了某种模板引擎,如FreeMarker或Velocity,用于动态生成HTML页面。理解模板引擎的工作原理,能提高页面渲染的效率和灵活性。 5. **安全机制**:分析系统中的登录认证、权限控制等...

Global site tag (gtag.js) - Google Analytics