我正在尝试使用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>
我完全不知道为什么这不起作用,似乎一切都是正确的。
答案 0 :(得分:1)
我认为页面上必须至少有1个Primefaces组件才能触发Primefaces向头部注入资源(js,css)。
尝试在那里放一些东西,例如
<p:outputLabel style="display:none"/>
并添加命名空间(xmlns:p="http://primefaces.org/ui"
)。