Fck 與 Struts2 更好的融合

   用struts2寫完了後臺,但是突然說要加一個文本編輯器,想當然就用FCK了。
    經過上網搜索N邊文章后,再經過N+1此失敗后,終於成功配上FCK。
    界面,功能的都沒有問題,但最重要的一項,卻因為STRUST2的原因而出了問題,
   顯示器前的讀者可能已經知道是XX問題,
    沒錯,就是圖片上傳問題。
    
    於是乎繼續上網搜索。。。。。。。。。。。。。。。。。。。。。
    幾萬個結果都是修改web.XML
 

 <filter>
      <filter-name>struts2</filter-name>
      <filter-class>com.mcar.util.MyStrutsFilterDispatcher</filter-class>
 </filter>
  <!-- FilterDispatcher 用来初始化 strtus2 并且处理所有的 web 请求 -->
  <filter-mapping>      
      <filter-name>struts2</filter-name>      
      <url-pattern>/*</url-pattern>      
  </filter-mapping>

     
   
  修改成====》
  

    <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>

     
   
   這個方法當然是沒有問題,完全能實現FCK圖片上傳。
   但問題就在於我的後臺已經寫完,我的所有路徑連接不是不帶後綴的。
  如果用上述方法修改,那麼我的連接: admin/login 就要變成 admin/login.action
   後臺都不知有多少個這要的連接,一個個改,那要改到什麽時候,並且我也不想一個個文件去修改。
   所以我就想有沒有其他方法可用,繼續上網搜索。。
   可惜結果千篇一律。
   
    好,靠人不如靠自己。閉目冥想。。。。。。。一不小心就差點睡著了
   好,廢話不多說。
   不知各位是否留意到我上面的XML
    

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>com.mcar.util.MyStrutsFilterDispatcher</filter-class>
</filter>

     
    filter-class 已經改變指向,變成了我自己修改的Class.
   
    下面再來看一下這個class
  

  public class MyStrutsFilterDispatcher extends FilterDispatcher {
 /**
   *struts2的攔截器與fck 上傳文件時衝突
    *重寫struts2的攔截器,增加了判斷,如果是fck的編輯器上傳文件,不進行攔截。
    *  判斷路徑是否有fckeditor 實現在fckeditor下的操作不進行攔截
    */
 @Override
 public void doFilter(ServletRequest req, ServletResponse res,
   FilterChain chain) throws IOException, ServletException {
      String url = ((HttpServletRequest)req).getRequestURI(); 
      if (url.indexOf("fckeditor") < 0) {
             super.doFilter(req, res, chain); 
       } else {
             chain.doFilter(req, res);
       }  
    }

}

      
   重寫了strut2 的攔截器。
     因為FCK所有的文件,我們都是放在fckeditor目錄下。
    所以所有fckeditor的操作都不會受影響


     以上就是本人對於Fck 與 struts2 衝突的看法。
     也是基於自身項目需求出發的,如果各位兄弟姐妹有什麽意見的話。
     歡迎指正。但是請不要惡意攻擊。
   

你可能感兴趣的:(apache,servlet,struts,fckeditor,idea)