我想创建一个可以将数据从数据库显示到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>
当我使用此代码时,我在Netbeans中收到此错误消息:
javax.faces.view.facelets.FaceletException:Error Parsing /my.xhtml:Error Traced [line:42]元素“f:facet”的前缀“f”未绑定
如果我将f
标记替换为h
标记,它会起作用吗?或者我是否必须包含f
标记库?
答案 0 :(得分: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>
如果您仍然使用JSF 2.0 / 2.1,请在XML命名空间中使用java.sun.com
域而不是xmlns.jcp.org
域。
我建议您阅读JSF教程,您可以在our JSF wiki page中找到链接。
答案 1 :(得分:2)
用f
替换h
将无效,因为没有h:facet
(在JSF html taglib中可能会分配给h
前缀) 。您必须包含适当的taglib(JSF核心)并将其分配给f
前缀。
答案 2 :(得分:0)
包含taglib。 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>