歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> struts2整合CKEditor和CKFinder實現上傳

struts2整合CKEditor和CKFinder實現上傳

日期:2017/2/28 14:50:04   编辑:Linux教程

上一篇文章給大家分享了CKEditor+CKFinder+JSP實現了在線編輯器上傳圖片的功能(見 http://www.linuxidc.com/Linux/2013-04/82956.htm),這裡在給大家分享一下如何在前面的基礎上在struts2下實現這樣的功能。

實現與Struts2的整合,整合的過程確實easy.不過實現之後,圖片上傳不上去,上傳之後顯示“文件不存在”,然後在網上找了一些資料,經過總結最終實現了這個功能。此問題的原因就是struts2的攔截器,在web.xml中,可以清楚的看到:

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

上面的配置,struts2會攔截所有以"/"開頭的URL.

在CKEditor的配置中,CKEditor是使用servlet來實現的,它也是通過攔截URL的機制進行工作的,CKeditor的部分servlet配置如下:

<servlet-mapping>
<servlet-name>ConnectorServlet</servlet-name>
<url-pattern>/ckfinder/core/connector/java/connector.java</url-pattern>
</servlet-mapping>

現在就很明了了,struts2攔截器會攔截所有以"/"開頭的URL,CKEd的servlet攔截器攔截所有以"

/ckfinder/core/connector/java/connector.java"開頭的URL.當時CKEditor上傳圖片的時 候,URL中包含有"/"(指網站根目錄),優先被struts2的攔截器攔截,這樣上傳的URL請求就不會轉發到CKEditor的servlet中, 所有上傳圖片也就不會成功.

問題所在找到了,那這個問題就好解決了,最簡單的辦法是將struts2的攔截器"/*"改成"#.action"或者"*.do",可以這樣改:

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

Copyright © Linux教程網 All Rights Reserved