我正在尝试使用PrimeFaces打印机功能进行打印。我创建了一个新的GlassFish 3 Java EE项目并添加了PrimeFaces 3.1.1 .jar
文件。
我目前使用的代码如下:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:outputText id="a" value="AA" />
<h:commandLink id="btn" value="Print">
<p:printer target="a" />
</h:commandLink>
</h:form>
</h:body>
</html>
不幸的是,打印功能不起作用。相反,FireBug控制台显示以下错误:
未定义PrimeFaces
答案 0 :(得分:15)
答案 1 :(得分:5)
这是一个小缺陷,并在3.2中修复。最终;
答案 2 :(得分:4)
如果您不允许访问
,也会发生这种情况$ {web应用} /javax.faces.resources / **
检查您的安全XML配置。
未定义Primefaces的JavaScript错误。
答案 3 :(得分:2)
试试这个......(如果这不起作用可能是一个错误 - 在问题跟踪器上打开一张票......)
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<h:commandButton id="btn" value="Print">
<p:printer target="output" />
</h:commandButton>
<h:outputText id="output" value="PrimeFaces Rocks!" />
<h:outputLink id="lnk" value="#">
<p:printer target="image" />
<h:outputText value="Print Image" />
</h:outputLink>
<p:graphicImage id="image" value="/images/nature1.jpg" />
</h:form>
</h:body>
</html>
listen ... primefaces正在使用jqprint jquery插件....你可能最好在等待正式的primefaces响应时直接使用它...
答案 4 :(得分:1)
答案 5 :(得分:1)
如果我只在表单上使用p:calendar,我会遇到同样的问题。视图上的所有标签都是jsf / facelet标签。唯一的primefaces标签是日历。看起来好像将java脚本作为优化删除了吗?
如果我将更多标签添加为p:dataTable,则java脚本错误将消失,日历组件将起作用。也许这会指出你在哪里。作为一种解决方法,您可以在表单上使用render = false来获取p:dataTable。
答案 6 :(得分:0)
我有同样的问题。我在jsf页面的顶部添加了<!DOCTYPE html>
标记并修复了它。
答案 7 :(得分:0)
我有同样的错误,在我自己的脚本中使用了PrimeFaces
变量。
这是我所做的:
变量PrimeFaces
在primefaces库的core.js
中定义。
在浏览器中查看网页的来源(例如,使用Developer Tools / F12),并检查使用PrimeFaces
var的脚本是否放在{{1}之后 }。如果不是这种情况,请将脚本移至源文件中的其他位置。例如。在core.js
标记之前。