I would like to create table which can display data from database into JSF page. I found this code:
<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>
When I use this code I get this error message in Netbeans:
javax.faces.view.facelets.FaceletException: Error Parsing /my.xhtml: Error Traced[line: 42] The prefix "f" for element "f:facet" is not bound
If I replace the f
tag with h
tag, is it going to work? Or do I have to include f
tag library?
Include taglib.
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
Replacing the
f
withh
won't work, since there's noh:facet
(in the JSF html taglib which is likely to be assigned to theh
prefix). You'll have to include the appropriate taglib (JSF core) and assign it to thef
prefix.You have to inlude the correct taglib for the f prefix.
Here is an example for a JSF 2.2 Facelet page:
In case you're still on JSF 2.0/2.1, use
java.sun.com
domain instead ofxmlns.jcp.org
domain in XML namespace.I recommend to read a JSF tutorial, you can find links in our JSF wiki page.