2013-02-01 70 views
1

我試圖用TinyMCE和JSF 2.x實現解決方案。 但我不確定如何繼續(不同的方法)。使用TinyMCE將內容保存到Facelets模板

我試圖做...

創建具有特定編輯區域/部分 ,有人可以通過TinyMCE的編輯,他們已經登錄後用戶模板(Facelets文件)。

我不想使用數據庫來存儲「可編輯」部分或將其動態插入到Facelets模板中。

我在想這樣的東西。

  1. 將可編輯內容加載到TinyMCE中。
  2. 用戶更新內容。
  3. 提交時,使用Java API for XML Processing 或其他一些xml/xhtml解析器驗證內容。
  4. 閱讀Facelets模板,並將可編輯的內容替換爲子模板。
  5. 用新的替換舊的Facelets文件並保存。

在執行更改之前,我應該使用中間步驟將預先保存的內容保存到Facelets文件中嗎? 任何其他想法如何繼續與此將不勝感激!

回答

2

我不想用DB來存儲「可編輯」的部分或將它們dynamiclly插入到Facelets模板。

然後你唯一可行的選擇是將它們保存在本地磁盤文件系統中。請注意,您可以也不應將它們保存在WAR的deploy文件夾中,但不在WAR之外。否則,在重新部署或甚至簡單的服務器重新啓動期間,所有更改都會丟失。更甚者,當服務器配置爲在內存中而不是在磁盤上擴展WAR時,您將無法向其寫入文件。

將文件保存到WAR之外很容易。只要寫對這個文件FileOutputStream

new File("/some/base/path", filename); 

獲取的Facelets化解來自外部WAR資源的需要自定義ResourceResolver

public class MyResourceResolver extends ResourceResolver { 

    private ResourceResolver parent; 

    public MyResourceResolver(ResourceResolver parent) { 
     this.parent = parent; 
    } 

    @Override 
    public URL resolveUrl(String path) { 
     URL url = parent.resolveUrl(path); // Resolves from WAR. 

     if (url == null) { 
      url = new File("/some/base/path", path).toURI().toURL(); 
     } 

     return url; 
    } 

} 

這就需要在web.xml如下注冊。

<context-param> 
    <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name> 
    <param-value>com.example.MyResourceResolver</param-value> 
</context-param> 
+0

對我即將保存的內容進行一些JAVA XML驗證是否明智? (愚蠢的問題,我想是的)。謝謝 – Dimman

+0

我會通過調用'ViewDeclarationLanguage#buildView()'來利用Facelets編譯器。 – BalusC

1

Xhtml文件默認位於WAR中。你可以部署爆炸的WAR並將它們保存到原地。然而,在重新部署後,您會放棄所有更改。

您可以「破解」JSF在WAR存檔之外尋找模板,但這可能會非常棘手。

你需要堅持JSF嗎?基於組件的服務器端技術並不是最佳選擇。我最好使用一些基於模板的控制器優先技術,如Spring MVC或Grails來解決此類問題。請注意,在JSF中,它是控制流程的XHTML頁面。這不僅僅是模板技術。

另請注意,這就是CMS系統發明的原因。

+0

注意到,我知道xhtml文件默認位於WAR內部。 我想知道是否可以使用像之類的東西來讀取預存的xml/xhtml內容並將其呈現(同時將其保存在WAR之外)。 需要堅持使用JSF。只有基本內容將被操縱,沒有表單輸入字段等。 檢查/收聽意見:) – Dimman

+0

創建一個定製的Facelets資源解析器絕對不是「hacky」也不是「棘手」。看到我的答案。 – BalusC

+0

@BalusC你是對的。 –

0

我在一個項目中使用了richfaces html編輯器,但是我們遇到了幾個問題,所以我們決定創建我們自己的facelet標籤,它加載了由apache提供的tinymce文件。像魅力工作