Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSF h:outputScript时未找到TinyMCE.js文件_Jsf_Tinymce - Fatal编程技术网

使用JSF h:outputScript时未找到TinyMCE.js文件

使用JSF h:outputScript时未找到TinyMCE.js文件,jsf,tinymce,Jsf,Tinymce,我有一个JSF2.0WebApplication,我想在其中加入Tinymce3.5 我将其包括在内的方式如下: <composite:implementation> <h:outputScript name="tiny_mce/tiny_mce.js"/> <h:outputScript name="js/tinymce_init.js"/> <h:inputTextarea rows="5" cols="80" styleCl

我有一个JSF2.0WebApplication,我想在其中加入Tinymce3.5

我将其包括在内的方式如下:

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

现在一切正常。我唯一的问题是“tiny_mce.js”引用了tiny_mce文件夹中的其他js文件。这些引用返回404错误,因为它们没有.xhtml结尾

示例:tiny_mce.js引用了en.js。它试图从“”加载它。如果我在浏览器中输入这个URL,我会得到一个404。如果我在最后加上.xhtml(“”),一切都很好


因此,我想问您,是否有一种方法可以将xhtml添加为.js文件的默认结尾,或者是否有一种方法可以使.js文件可访问。

您也可以测试它,而不是

这:


或者像这样:

<script language="text/javascript" src="tiny_mce/tiny_mce.js" />
<script language="text/javascript" src="js/tinymce_init.js" />

<composite:implementation>
    <h:inputTextarea rows="5" cols="80" styleClass="tinymce" value="#{cc.attrs.value}"/>
</composite:implementation>

将生成一个JSF资源URL,该URL由
ResourceHandler
处理,从而允许模块化和版本化,而无需更改
。当
FacesServlet
映射到
*.xhtml
上时,资源URL如下所示

/contextname/javax.faces.resource/filename.js.xhtml

TinyMCE脚本显然是根据脚本自己的URL自动包含一些其他脚本,而不考虑
.xhtml
后缀

/contextname/javax.faces.resource/otherfile.js

这将导致404。当您对像
/faces/*
这样的
FacesServlet
使用前缀映射时,将不会发生此问题

一种解决方案是自己用所需的URL硬编码
。那么,正确的替代品将是

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


唯一的缺点是,当您在一个视图中使用多个复合组件时,最终会在主体中出现多个
条目,而不是
只处理一个条目。这可能会导致JavaScript冲突/错误。如果您遇到这个问题,我会考虑对TyMyCE JavaScript文件进行破解/修复,从而在URL中添加<代码> .xHTML/COD>后缀,这样您就可以继续使用<代码> <代码>。或者,您当然可以使用现有的、随时可用的JSF富文本编辑器组件,例如,这样您就不必担心这一切。

我刚刚遇到了这个问题,最简单的解决方案是,您可以使用与为tiny_mce.js添加相同的方式添加缺少的文件

        <!-- TinyMCE -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/tinymce.min.js"></h:outputScript>
        <!-- TinyMCE theme -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/themes/modern/theme.min.js"></h:outputScript>
        <!-- TinyMCE plugins -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/advlist/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/autolink/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/lists/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/charmap/plugin.min.js"></h:outputScript>


*.js.xhtml将非常可怕。。。如果对*.xhtml结尾有任何限制,请检查您的web.xml或faces-config.xml。。。否则,你为什么不把所有的tinymce文件放在一个文件夹里呢?谢谢你的建议,托比。我同意你的看法。没有选择js.xhtml。web.xml和faces-config.xml似乎还可以。一个文件夹中的所有.js文件都无法解决问题,因为其中一些.js文件引用了其他文件(因此需要保留结构)。好的。。。这可能对你有帮助吗?我也有同样的问题,但资源文件夹应该在哪个目录下?它只是同一个资源文件夹。唯一的变化是按照指示的方式将
替换为
。我已经定义了,但无法加载404BALUC。请帮助我解决这个问题,我面临着来自Longic的问题。如果您有
/resources/xxx/yyy.js
,那么您需要使用
而不是
        <!-- TinyMCE -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/tinymce.min.js"></h:outputScript>
        <!-- TinyMCE theme -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/themes/modern/theme.min.js"></h:outputScript>
        <!-- TinyMCE plugins -->
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/advlist/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/autolink/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/lists/plugin.min.js"></h:outputScript>
        <h:outputScript library="libs" name="js/tinymce/4.1.10/plugins/charmap/plugin.min.js"></h:outputScript>