如何将richfaces标签添加到jsf页面?

时间:2013-07-07 19:11:35

标签: java jsf java-ee richfaces

我正在关注http://livedemo.exadel.com/richfaces-demo/richfaces/scrollableDataTable.jsf?tab=usage&cid=40889上的教程和示例,我正在使用richfaces 4.0。现在我正在尝试创建一个可滚动的数据表。我将示例代码插入到我的jsf页面。这是:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:a4j="http://richfaces.org/a4j"
  xmlns:rich="http://richfaces.org/rich">

    <style>
        .scrolls{
            width:300px;
            height:200px;
            overflow:auto;
        }
    </style>    
    <h:form>
        <rich:spacer height="30" />
        <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="400px" 
            width="700px" id="carList" rows="40" columnClasses="col"
            value="#{dataTableScrollerBean.allCars}" var="category" sortMode="single"
            sortOrder="#{dataTableScrollerBean.order}"
            selection="#{dataTableScrollerBean.selection}">

            <rich:column id="make">
                <f:facet name="header"><h:outputText styleClass="headerText" value="Make" /></f:facet>
                <h:outputText value="#{category.make}" />
            </rich:column>
            <rich:column id="model">
                <f:facet name="header"><h:outputText styleClass="headerText" value="Model" /></f:facet>
                <h:outputText value="#{category.model}" />
            </rich:column>
            <rich:column id="price">
                <f:facet name="header"><h:outputText styleClass="headerText" value="Price" /></f:facet>
                <h:outputText value="#{category.price}" />
            </rich:column>
            <rich:column id="mileage">
                <f:facet name="header"><h:outputText styleClass="headerText" value="Mileage" /></f:facet>
                <h:outputText value="#{category.mileage}" />
            </rich:column>
            <rich:column width="200px" id="vin">
                <f:facet name="header"><h:outputText styleClass="headerText" value="VIN" /></f:facet>
                <h:outputText value="#{category.vin}" />
            </rich:column>
            <rich:column id="stock">
                <f:facet name="header"><h:outputText styleClass="headerText" value="Stock" /></f:facet>
                <h:outputText value="#{category.stock}" />
            </rich:column>
        </rich:scrollableDataTable>
        <rich:spacer height="20px"/>
        <a4j:commandButton value="Show Current Selection" reRender="table" 
            action="#{dataTableScrollerBean.takeSelection}" 
            oncomplete="javascript:Richfaces.showModalPanel('panel');"/>
    </h:form>
    <rich:modalPanel id="panel" autosized="false" keepVisualState="false" width="315" height="230">
            <f:facet name="header">
                <h:outputText value="Selected Rows"/>
            </f:facet>
            <f:facet name="controls">
                <span style="cursor:pointer" onclick="javascript:Richfaces.hideModalPanel('panel')">X</span>
            </f:facet>
        <h:panelGroup layout="block" styleClass="scrolls">
        <rich:dataTable value="#{dataTableScrollerBean.selectedCars}" var="sel" id="table">
            <rich:column>
                <f:facet name="header"><h:outputText value="Make" /></f:facet>
                <h:outputText value="#{sel.make}" />
            </rich:column>
            <rich:column id="model">
                <f:facet name="header"><h:outputText value="Model" /></f:facet>
                <h:outputText value="#{sel.model}" />
            </rich:column>
            <rich:column id="price">
                <f:facet name="header"><h:outputText value="Price" /></f:facet>
                <h:outputText value="#{sel.price}" />
            </rich:column>
            <rich:column id="mileage">
                <f:facet name="header"><h:outputText value="Mileage" /></f:facet>
                <h:outputText value="#{sel.mileage}" />
            </rich:column>
            <rich:column id="stock">
                <f:facet name="header"><h:outputText value="Stock" /></f:facet>
                <h:outputText value="#{sel.stock}" />
            </rich:column>
        </rich:dataTable>
        </h:panelGroup>
    </rich:modalPanel>
</ui:composition>

问题是,netbeans说

The component library http://richfaces.org/rich does not contain component scrollableDataTable

要解决此问题,我想我需要在页面中添加org.richfaces.taglib.ScrollableDataTableTag标记。但我不知道如何将标签添加到jsf页面。我试过了:

<ui:composition xlmns:u="org.richfaces.taglib.ScrollableDataTableTag">

但它提出错误说:

Fatal Error: Open quote is expected for attribute "{1}" associated with an  element type  "xlmns:u".

从第14行第9栏;到第14行,第33栏

Further processing of the file may be significantly affected by this fatal error. Please fix the problem before continuing editing of this file!

Undeclared component xlmns:u=org.richfaces.taglib.ScrollableDataTableTag"

那么我该如何添加这个标签,还是我必须做另一件事来使用可滚动的数据表?有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

正如Alexandre Lavoie所说,这是因为版本不同而且现在正在运作。