2011-04-13 33 views
3

我下载并将primefaces-3.0.M1.jar文件添加到我的项目中。
然后,我将此代码添加到我的JSP页面:PrimeFaces taglib在使用JSF时出现问题

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %> 

但它给人的错误:

Can not find the tag library descriptor for "http://primefaces.prime.com.tr/ui"

任何人都可以指导我如何解决这个问题?

+0

taglib描述符看起来不错。你把jar文件放在哪里? – 2011-04-13 07:24:54

+0

我在Build Path中添加了jar文件作为外部存档,我还通过在web-inf下的lib文件夹下添加了jar文件 – diyasher 2011-04-13 07:30:22

+0

**欢迎使用StackOverflow!**请格式化每行代码**四个空格**。谢谢! – 2011-05-17 17:51:44

回答

4

在primefaces论坛中有some comments Primefaces 2.x及以上版本无法与JSP一起使用。改用Facelets。

使用primefaces一个的facelet页看起来是这样的:

<?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:ui="http://java.sun.com/jsf/facelets" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:p="http://primefaces.prime.com.tr/ui"> 
     <h:head> 
     ... put your header info here 
     </h:ead> 
     <h:body> 
     .. put your content here 
     </h:body> 
    </html> 

还有更多的事情要注意,如果你想从JSP切换到小面。我认为你开始阅读some tutorials或这related question and answers

+0

可以告诉我如何使用facelets – diyasher 2011-04-13 10:10:17

+0

@diyasher更新了我的答案。 – 2011-04-13 10:21:39

+0

在glassfish3 facelets必须有一个.xhtml而不是.html扩展名才能被识别为那些。 – Paranaix 2012-07-11 13:03:04

-2

你可以尝试以下解决方法:

<% response.setContentType("application/xhtml+xml"); %> 
+0

**欢迎使用StackOverflow!**请将每行代码缩进四个空格。谢谢! – 2011-05-17 17:50:23

+0

1)根本解决不了问题。 2)MSIE浏览器不支持这种内容类型,然后弹出一个*另存为*对话框。 – BalusC 2012-05-01 19:27:16

-2

只需添加primefaces到项目构建路径。

primefaces in project buildpath

+0

如果您已经在使用正确的名称空间,那么这是真的。在这种情况下,命名空间是错误的。 – Kukeltje 2016-02-17 11:31:46

+0

我有正确的命名空间相同的问题。在我已经将primefaces添加到构建路径后,我可以使用p:tag库... – 2016-02-17 11:33:59

+0

是的,这就是我所说的..如果您已经使用了正确的命名空间,并且出现此错误,那么这就是答案。但是,这不是**这个问题中的问题。所以请在答案中加上澄清。并添加有关版本等信息 – Kukeltje 2016-02-17 12:38:19