2012-10-18 35 views
0

我正在嘗試使用PrimeFaces 3.2。我正在使用Eclipse Indigo SR2。我正在使用PrimeFaces標籤創建一個JSP頁面。標準<h:commandButton>正在工作,但<p:commandButton>不起作用。如何在Eclipse Indigo SR2中使用PrimeFaces 3.2?

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> 
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns:p="http://primefaces.org/ui"> 
<head> 

</head> 
<body> 
<f:view> 
     <h:form> 
     <h:commandButton value="Click"></h:commandButton> 
     <p:commandButton value="shfgldjfkl"></p:commandButton> 
     </h:form> 
</f:view> 
</body> 
</html> 

我的輸出是這樣的:

enter image description here

當我採取了JSF XHTML頁面中靛藍服務發佈2,然後我的代碼沒有運行我的頁面是空白的。

我該如何使用PrimeFaces 3.2?

+0

看看這個:http://www.mkyong.com/jsf2/primefaces/primefaces-hello-world-example/不是行家,你可以把德的jar放到lib文件夾,並添加他們到您的構建路徑 – Daniel

+1

當採取截圖時,請嘗試只裁剪*相關*片。有沒有在你的問題圍繞着唯一的按鈕,一個巨大的空白這是相當荒謬的。 – BalusC

回答

2

JSP is 已棄用自JSF 2.0開始並由Facelets成功。所有與JSF 2.0兼容的組件庫(如PrimeFaces> 2.x)不再具有用於JSP的taglibs,但僅適用於Facelets。

放置在JSP文件中的<html xmlns:p="http://primefaces.org/ui">根本不會被JSP識別。 XML命名空間上的JSF標籤庫僅在Facelets中工作。

Forget JSP. Concentrate on Facelets.

返回一個空白頁的您Facelets的問題,確保你已經代替<h:head><head>(否則JSF/PrimeFaces將不能夠自動包含必要的CSS/JS文件),並且您的請求網址與FacesServlet的網址格式匹配,如web.xml所定義(否則FacesServlet根本不會被調用,因此無法將JSF轉換爲HTML;您可以通過點擊右鍵來確認)查看源代碼網頁瀏覽器中的)。

下面是完整的Facelets片斷/demo.xhtml

<!DOCTYPE html> 
<html lang="en" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>PrimeFaces demo</title> 
    </h:head> 
    <h:body> 
     <h:form> 
      <p:commandButton value="submit" /> 
     </h:form> 
    </h:body> 
</html> 

如果FacesServletweb.xml映射在*.xhtml的URL模式如下:

<servlet> 
    <servlet-name>facesServlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>facesServlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

那麼你可以用很打開在URL中使用相同的文件名,而不需要像*.jsf/faces/*等虛擬URL那樣弄虛作假:

0

嗯,我認爲你應該使用JSF或facelet裏,我個人從來沒有嘗試primeface實現JSP,順便說一下,爲什麼實現JSP,如果你能做到在JSF的結果相同或facelet裏,所以我建議移動到JSF 2.0