注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发JSP → 文章内容

让FCKeditor在JSP和JSF项目中跑起来

作者:佚名 来源:不详 发布时间:2007-11-30 0:02:44

  <servlet-mapping> 通过观察,发现filemanager请求服务器的路径,就修改如下
    <servlet-name>Connector</servlet-name>
    <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector.jsp</url-pattern>
  </servlet-mapping>
 
  <servlet-mapping> 这个是Simone Chiaretta的配置,暂时未发现用处
    <servlet-name>SimpleUploader</servlet-name>
    <url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader.jsp</url-pattern>
  </servlet-mapping>
  <servlet-mapping> 通过观察,发现filemanager请求服务器的路径,就修改如下
    <servlet-name>SimpleUploader</servlet-name>
    <url-pattern>/FCKeditor/editor/filemanager/upload/jsp/upload.jsp</url-pattern>
  </servlet-mapping>
<!-- End of FCKEditor -->

3.4 修改 com.fredck.FCKeditor.uploader.SimpleUploaderServlet
 在约第113行附近,就如下面代码,避免构建null路径:
 if (typeStr==null || typeStr.trim().equals("")) typeStr = "File";
 (这个是仿照fckeditor在upload.php,upload.asp等源码来修改的)
 
3.5 修改jsf标签
你可以去这里获得fck-faces的源代码,或者联系作者让他修正错误(忘记处理编辑器的宽高)
http://sourceforge.net/forum/forum.php?forum_id=606070
(实在找不到,你可以考虑反编译其中这个文件)

找到 org.fckfaces.taglib.html.FCKFaceEditorTag 类,修改下面方法
 protected void setProperties(UIComponent component)
    {
        super.setProperties(component);
        Tags.setString(component, "toolbarSet", toolbarSet);
    }
  为: 
  protected void setProperties(UIComponent component)
    {
        super.setProperties(component);
        Tags.setString(component, "toolbarSet", toolbarSet);
        Tags.setString(component, "height", height);
        Tags.setString(component, "width", width);
    }
相应的,你还需要修改 org.fckfaces.component.html.FCKFaceEditor的saveState(FacesContext context)和restoreState(FacesContext context, Object state)方法,来保存和恢复宽高属性。

public Object saveState(FacesContext context)
    {
        Object values[] = new Object[4];
        values[0] = super.saveState(context);
        values[1]=height;
        values[2]=width;
        values[3] = toolbarSet;
        return ((Object) (values));
    }

    public void restoreState(FacesContext context, Object state)
    {
        Object values[] = (Object[])(Object[])state;
        super.restoreState(context, values[0]);
        System.out.println(values.length);
        height=(String)values[1];
        width=(String)values[2];
        toolbarSet = (String)values[3];
    }

让FCKeditor在JSP和JSF项目中跑起来
找到org.fckfaces.util.Util类

在调试fck-faces的时候,发现fck-faces的标签非常强大,居然不用再jsp页面引入fckeditor.js,
它竟然能否自动做到。可惜分析一下这个功能是建立它要求你固定的把FCKeditor的代码放在
/fckfaces/FCKeditor目录下。如果像我把它放在/FCKeditor就需要作出以下修改:

public class Util{

    public Util() {}

    public static final String internalPath(String path)
    {
        return (new StringBuilder()).append(FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath()).append(FCK_FACES_RESOURCE_PREFIX).append(path).toString();
    }

    public static final String FCK_FACES_RESOURCE_PREFIX = "/";  //这里原来是/fckfaces
}

如果你是反编译得到的源代码,则编译成功之后,需要替换掉原来jar包里面的这个class文件。
(你可以使用jar命令行来解压jar,换了文件之后在打包。)

如果你是获得源码修改,可能需要注意配置fck-faces.taglib.xml,fck-faces.tld和faces-config.xml。这几个文件在压缩包里面都有。

 



上一页  [1] [2] [3]  下一页


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved