PrimeFaces组件不';当标准JSF组件渲染良好时,不会显示
Java EE6/CDI JSF2 Primefaces 3.3.1。如果我使用jsf,我创建了一个带有几个级联下拉列表的搜索页面,这些下拉列表用于生成搜索结果表:PrimeFaces组件不';当标准JSF组件渲染良好时,不会显示,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,Java EE6/CDI JSF2 Primefaces 3.3.1。如果我使用jsf,我创建了一个带有几个级联下拉列表的搜索页面,这些下拉列表用于生成搜索结果表: <h:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}"> <f:facet name="he
<h:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}">
<f:facet name="header">
Employee Search Results
</f:facet>
<h:column>
<f:facet name="header">Area</f:facet>
<h:outputText value="#{_employeeVList.areaName}" />
</h:column>
...
</h:dataTable>
员工搜索结果
地区
...
该表以输出方式呈现,html看起来正常。但当我换成素面时:
<p:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}">
<f:facet name="header">
Employee Search Results
</f:facet>
<p:column>
<f:facet name="header">Area</f:facet>
<h:outputText value="#{_employeeVList.areaName}" />
</p:column>
...
</p:dataTable>
员工搜索结果
地区
...
这张桌子不显示。当我查看firebug的源代码时,我发现html有些奇怪:
<table id="searchForm:results">
<tbody>
<tr>
<td>
<p:datatable rendered="true" value="[com.raytheon.myPkg.EmployeeV@f486, com.raytheon.myPkg.EmployeeV@88fe, com.raytheon.myPkg.EmployeeV@adaf,
...
com.raytheon.myPkg.EmployeeV@6a5b]"
var="_employeeVList">
<p:column></p:column>
<p:column></p:column>
...
</p:datatable></td>
</tr>
</tbody>
</table>
...
对象位于标记标签中,列为空。
在页面的其他地方,我使用的是p:panelGrid,它包含下拉列表并正确显示
我的默认模板页面中有h:head和h:body
该表由有状态请求范围的bean支持
我没有使用任何外部JavaScript
我做错了什么?因此,
标记根本没有被解析为JSF标记,并且在生成的HTML输出中看起来很普通。可能有以下一个或多个原因:
p:
XML名称空间,或者使用了错误的名称空间URI。应该是:
xmlns:p="http://primefaces.org/ui"
/WEB-INF/lib
文件夹中放置primefaces.jar
b。确保您的依赖关系管理器(例如Maven)已配置为将PrimeFaces添加到项目中,并将其添加到运行时/WEB-INF/lib
文件夹中
标记根本没有被解析为JSF标记,并且在生成的HTML输出中看起来很普通。可能有以下一个或多个原因:
p:
XML名称空间,或者使用了错误的名称空间URI。应该是:
xmlns:p="http://primefaces.org/ui"
/WEB-INF/lib
文件夹中放置primefaces.jar
b。确保您的依赖关系管理器(例如Maven)已配置为将PrimeFaces添加到项目中,并将其添加到运行时/WEB-INF/lib
文件夹中要在BalusC的列表中添加另一个原因: 如果您不向URL添加servlet URL映射,您将得到奇怪的输出,JSF将不会解析您的XHTML页面 例如,如果web.xml中有以下URL映射:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Facesservlet
/面孔/*
您应该使用/faces/yourpage.xhtml
通过JSF正确呈现输出
如果使用
/yourpage.xhtml
,您将看到奇怪的输出。要在BalusC的列表中添加另一个原因:
如果您不向URL添加servlet URL映射,您将得到奇怪的输出,JSF将不会解析您的XHTML页面
例如,如果web.xml中有以下URL映射:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Facesservlet
/面孔/*
您应该使用/faces/yourpage.xhtml
通过JSF正确呈现输出
如果使用
/yourpage.xhtml
您将看到奇怪的输出。doh,名称空间是我检查的第一件事-显然不够接近。Thanx@BalusCdoh,名称空间是我检查的第一件事——显然不够接近。Thanx@Balusc确实如此,但在OP的特殊情况下,
起作用了,所以我勾选了这种可能性:)确实如此,但在OP的特殊情况下,
起作用了,所以我勾选了这种可能性:)