Primefaces CKeditor不会渲染

时间:2017-05-19 15:00:07

标签: jsf primefaces ckeditor primefaces-extensions

我正在尝试使用Primefaces扩展CKeditor并且无法使其工作。关于SO的所有类似问题都是由于不包括资源问题引起的,我已经这样做了。我在浏览器中收到一个javascript错误,这可能是相关的。以下代码仅呈现大小可调整的文本区域框。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:pe="http://primefaces.org/ui/extensions"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <f:view>
    <h:body>
        <h:form>
        <pe:ckEditor id="editor" value="Test">  
        </pe:ckEditor>
        </h:form>
    </h:body>
    </f:view>
</html>

这是我的POM

<dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.1</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>primefaces-extensions</artifactId>
            <version>6.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>resources-ckeditor</artifactId>
            <version>6.1.0</version>
        </dependency>

这是我在浏览器中遇到的错误

test.xhtml:8 Uncaught ReferenceError: $ is not defined

这是输出到浏览器的相关HTML代码

<h:inputText></h:inputText><textarea id="editor" name="editor">test</textarea><script id="editor_s" type="text/javascript">$(function(){PrimeFaces.cw("ExtCKEditor","widget_editor",{id:"editor",height:"200px",width:"600px",readOnly:false,advancedContentFilter:true});});</script>

我完全不知道为什么这不起作用,似乎一切都是正确的。

1 个答案:

答案 0 :(得分:1)

我认为页面上必须至少有1个Primefaces组件才能触发Primefaces向头部注入资源(js,css)。

尝试在那里放一些东西,例如

<p:outputLabel style="display:none"/>

并添加命名空间(xmlns:p="http://primefaces.org/ui")。