2012-10-18 38 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