安全中国首页 > 编程中心 > JSP编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

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

更新时间:2008-6-30 1:11:07
责任编辑:ShellExp
热 点:

<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];
    }


找到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。这几个文件在压缩包里面都有。

 
学习软件编程开发技术,推荐加入以下软件编程培训班:
易语言软件编程培训班(简单易学)  Delphi软件编程培训班  VC++软件编程培训班
VB软件编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚技能培训班  Flash动画设计师就业特训班

 
相关编程
一日一文章
 
一日一软件
一日一动画