1

このチュートリアル http://kpachar.blogspot.de/2010/06/tinymce-as-jsf-2-composite-component.htmlのように、このエディターを使用しようとすると、 残念ながら機能しません。テキストエリアは表示されますが、編集するボタンがありません。

同じプロジェクトの異なる場所にエディターがありますが、一方の場所では機能し、もう一方の場所では機能しません。

私は別のブラウザでそれを試しましたが、どこでも同じ問題がありました。Firebugは、imが呼び出しているスクリプトが含まれていることを示し、alertがそれを証明します。

私が呼ぶスクリプト:

<composite:implementation>
    <h:outputScript name="tiny_mce/tiny_mce.js" target="head"/>
    <h:outputScript name="editors/tinymce_init.js" />
    <h:inputTextarea id="textarea" value="#{cc.attrs.value}" rows="5" cols="80"
        styleClass="tinymce" />
</composite:implementation>

ただし、スクリプトtiny_mce.jsによって呼び出されたスクリプトはロードできません。

Failed to load: http://localhost:8080/SOCIATO_Testcommunity/javax.faces.resource/tiny_mce/langs/en.js

Failed to load: http://localhost:8080/SOCIATO_Testcommunity/javax.faces.resource/tiny_mce/themes/simple/editor_template.js

両方のファイルは「resources」フォルダーにありますが、サーバーは「javax.faces.resource」でそれらを見つけようとします。他のファイル(outputScriptによって呼び出されるfe)は、このファイルを自動的に検出します。tiny_mceによって呼び出されたこのsciptsを見つける場所をサーバーに伝えるにはどうすればよいですか?

何か考えてください。

4

1 に答える 1

0

それらは元のスクリプトの場所に関連して解決され、それらのURLはのURLパターンと一致するFacesServlet必要があるため、追加.jsfまたは.xhtmlサフィックスが必要です。基本的に、TinyMCE JSソースコードを編集して、それらの依存関係がロードされるURLを修正する必要があります。<script>の代わりにそれらを含める方がおそらく簡単です<h:outputScript>

<script src="#{request.contextPath}/resources/tiny_mce/tiny_mce.js" />
<script src="#{request.contextPath}/resources/editors/tinymce_init.js" />

または、PrimeFacesやRichFacesなど、これをすでに解決しているコンポーネントライブラリを採用するだけです。

于 2012-06-11T14:27:23.763 に答える