1

我正在尝试使用本教程中的编辑器 http://kpachar.blogspot.de/2010/06/tinymce-as-jsf-2-composite-component.html 不幸的是它对我不起作用。我可以看到文本区域,但没有要编辑的按钮。

我在不同地方的同一个项目中拥有编辑器,但在一个地方它工作,在另一个地方它没有。

我用不同的浏览器尝试过,到处都是同样的问题。Firebug 显示我调用的脚本已包含在内,并且 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 回答