javax.faces.view.facelets.FaceletException:Error Parsing /my.xhtml:Error Traced [line:42]元素"f:facet"的前缀"f"未绑定

Pet*_*zov 4 jsf facelets prefix xml-namespaces

我想创建一个可以将数据从数据库显示到JSF页面的表.我找到了这段代码:

<h:dataTable value="#{bookStore.items}" var="store">
  <h:column>
    <f:facet name="header">
      <h:outputText  value="#{msg.storeNameLabel}"/>
    </f:facet>
    <h:outputText value="#{store.name}"/>
  </h:column>
  <h:column>
    <f:facet name="header">
      Subject
    </f:facet>
    <h:outputText value="#{store.subject}"/>
  </h:column>
  <h:column>
    <f:facet name="header">
      <h:outputText  value="#{msg.storePriceLabel}"/>
    </f:facet>
    <h:outputText value="#{store.price}"/>
  </h:column>
</h:dataTable> 
Run Code Online (Sandbox Code Playgroud)

当我使用此代码时,我在Netbeans中收到此错误消息:

javax.faces.view.facelets.FaceletException:Error Parsing /my.xhtml:Error Traced [line:42]元素"f:facet"的前缀"f"未绑定

如果我用f标签替换h标签,它会起作用吗?或者我是否必须包含f标签库?

Mat*_*ndy 16

您必须为f前缀包含正确的taglib.

以下是JSF 2.2 Facelet页面的示例:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

...
</html>
Run Code Online (Sandbox Code Playgroud)

如果您仍然使用JSF 2.0/2.1,请在XML命名空间中使用java.sun.com域而不是xmlns.jcp.org域.

我建议阅读JSF教程,您可以在我们的JSF wiki页面中找到链接.