FCKeditor 2.6.3 與FCKeditor.java 2.4在JSP中配置

來源:互聯網
上載者:User

1.FCKeditor 介紹
FCKeditor 這個開源的HTML 文字編輯器可以讓web 程式擁有如MS Word 這樣強大的編輯功能,.FCKeditor 支援當前流行的瀏覽器:

2.準備工作:

環境:winddows XP、tomcat6.0、JDK1.6
下載:
1):FCKeditor_2.6.3b.zip
地址:http://nchc.dl.sourceforge.net/sourceforge/fckeditor/FCKeditor_2.6.3b.zip
2):fckeditor-java-2.4-bin.zip (JAVA支援包)地址http://nchc.dl.sourceforge.net/sourceforge/fckeditor/fckeditor-java-2.4-bin.zip
3)slf4j-1.5.2.zip 地址 :http://slf4j.org/dist/slf4j-1.5.2.zip

3.安裝:

1)解壓FCKeditor_2.6.3b.zip,將解壓的到的fckeditor整個檔案夾完整複製到工程目錄WebRoot下。
2)解壓fckeditor-java-2.4-bin.zip,在fckeditor-java-2.4-bin的解壓縮檔案中提取出4個JAR包,分別為fckeditor-java-core-2.4.jar、commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、slf4j-api-1.5.2.jar,
3)解壓slf4j-1.5.2.zip,只需提取slf4j-jdk14-1.5.2.jar包
4)將2、3步提取的5個包都都導如工程目錄WEB-INF/bin中

插句題外話,剛開始我只匯入了第2步截壓出的4個包,啟動TOMCAT的時候提示找不到類org.slf4j.impl.StaticLoggerBider,再看官方文檔,上面說還要下SLF4J,於是便到slf4j官網下了個最新版,但不知道org.slf4j.impl.StaticLoggerBider類在哪個包裡,這是我最笨之處,我將所有包都導進去慢慢找(汗……),然後把多餘包給移除了(通過項目右鍵→Properties→Java Build Path→Libraries,移除多餘包),再重啟,現在不報找不到類的錯了,但出現了上百條java.lang.StackOverflowError錯誤(再汗……),查了N久,沒結果,然後在MyEclipse的lib目錄下還發現了一大堆剛才移除的包,接著我就把他們統統右鍵Delete刪除,再重啟,嘿嘿,OK了。

4.配置

1)在共程目錄src/下建立一個檔案fckeditor.properties,新增內容:connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl 儲存即可。
2)修改web.xml,用來提供上傳功能支援,
新增內容:
<servlet>
      <servlet-name>Connector</servlet-name>
        <servlet-class>
          net.fckeditor.connector.ConnectorServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
      <servlet-name>Connector</servlet-name>
      <url-pattern>
        /fckeditor/editor/filemanager/connectors/*
      </url-pattern>
    </servlet-mapping>
5.應用
在工程目錄WebRoot下建立index.jsp,result.jsp兩個檔案,
index.jsp:
<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
<%@ taglib uri=”http://java.fckeditor.net” prefix=”FCK” %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;
%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
    <base href=”<%=basePath%>”>
    <title>FCKeditor.java2.4 for FCKeditor2.6.3Beate text</title>
    <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta http-equiv=”pragma” content=”no-cache”>
<meta http-equiv=”cache-control” content=”no-cache”>
<meta http-equiv=”expires” content=”0″>   
<meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″>
<meta http-equiv=”description” content=”This is my page”>
</head>
<body>
    <form action=”result.jsp” method=”post”>
    <FCK:editor instanceName=”content”>
    <jsp:attribute name=”value”>
    您的內容…..
    </jsp:attribute>
</FCK:editor>
<input type=”submit” value=”提交”>
    </form>
   
</body>
</html>
result.jsp
<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;
%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
    <base href=”<%=basePath%>”>
    <title>My JSP ‘result.jsp’ starting page</title>
    <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta http-equiv=”pragma” content=”no-cache”>
<meta http-equiv=”cache-control” content=”no-cache”>
<meta http-equiv=”expires” content=”0″>   
<meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″>
<meta http-equiv=”description” content=”This is my page”>
</head>
<body>
    <%=request.getParameter(”content”) %>
</body>
</html>

在IE地址中輸入:http://localhost:8080/FCKtest    OK,成功了!

6.不足之處

世界上沒有絕對完美的女子(不知道你是否發現了完美的女孩,錯了不要打我),FCK也一樣。
1) 在文字框中輸入中文提交後得到的中文亂碼。
解決辦法:
Result.JSP中來轉碼:
new String(request.getParameter(“content”).getByte(iso-8859-1),”UTF-8”)
實驗下,嘿嘿,”漢化”成功!
或者加上
<%    
   request.setCharacterEncoding("UTF-8");    
%>    
<body>    
   <h1>FCKeditor - 顯示資料</h1>      
   <hr/><br />    
   <%=request.getParameter("context")%>    
</body>    
</html> 

2) 上傳中文名圖片後儲存的中文圖片名亂碼
解決辦法:修改fckeditor-java-core-2.4.jar包中的ConnectorServlet.java(upload.setHeaderEncoding(”UTF-8″);),替換以前下載的fckeditor-java-core-2.4.jar包,
OK,上傳中文圖片名顯示正常了,

3) 點擊瀏覽伺服器後,選擇剛上傳的中文圖片,圖片在預覽視窗中不能顯示
解決辦法:
修改TOMCAT安裝目錄config下的server.xml檔案,在<Connector/>標籤內加上 URIEncoding=”UTF-8″。
OK,中文圖片正常顯示。

4) 關與FLASH的上傳
A.上傳中文檔案名稱FLASH時,有時候彈出沒有許可權,或者是檔案類型錯誤,有時候上傳正常。
B.上傳英文或者數字名FLASH時,視窗一直處與等待狀態,過一會兒關閉視窗,再通過瀏覽伺服器按鈕可以看到FLASH已經成功上傳。
C.有時候如過上傳成功了,預覽視窗也不能播放。
D.有時候無論使用什麼語言的檔案名稱都可以上傳成功。
但只要你是使用的英文或則數字檔案名稱,就能100%上傳。

所以關於這個問題估計還是編碼引起的。

5)。FCKeditor2.6.2上傳檔案功能與Struts 2 不相容的問題。
解決辦法:
讓Struts2僅處理*.action的請求。修改設定檔web.xml:
將Struts2處理所有web請求的過濾器配置
<filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>/*</url-pattern>
       </filter-mapping>
改為:僅處理.action或.jsp請求
<filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>*.action</url-pattern>
       </filter-mapping>
       <filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>*.jsp</url-pattern>
       </filter-mapping>
備忘:以上設定檔的更改會造成Struts2 標籤在頁面中不顯示
       應該在web.xml檔案中加入以下配置:
<filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>/struts/*</url-pattern>
       </filter-mapping>

附:FCKeditor的編碼是個老大難,想真正讓他很好的處理中文是件非常不容易的事情,例如上面費了好大勁將中文名圖片的上傳和瀏覽功能修改好之後,FLASH又出問題。這些都是編碼惹的禍。

7.總結:

FCKeditor2.6.3 Beta在2.6.2基礎上有了很大改進,FCKeidtor 2.6.3Beta在配置上進行了大量簡化,讓使用者更易輕鬆上手,但FCKeditor的編碼是個老大難問題,特別在檔案上傳功能上表現的尤為突出,希望FCK官方在以後的版本中能夠修正這個BUG。

http://blog.waw8.com/tag/fckeditor-263%E5%9C%A8jsp%E4%B8%AD%E9%85%8D%E7%BD%AE

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.