JSF 2:在2列之后不复制dataTable columnClasses

ber*_*tie 4 jsf jsf-2

我正在使用glassfish 3.0.1,并且是第一次在dataTable中尝试使用columnClasses.

它是这样的:

<h:dataTable value="#{coreGridBean.heroBeanList}" var="hero"
                    captionStyle="font-size: 0.95em; font-style:italic"
                    styleClass="orders"
                    headerClass="ordersHeader"
                    footerClass="ordersHeader"
                    columnClasses="oddColumn,evenColumn">
Run Code Online (Sandbox Code Playgroud)

从核心jsf书中读取,它表示通过在columnClasses属性中仅指定2个类,当列量大于2时,将重复这些2.

假设我有五列,columnClasses将变为oddColumn,evenColumn,oddColumn,evenColumn,oddColumn,我们只需要像这样定义:columnClasses ="oddColumn,evenColumn"

但根据我对3列的经验,它不是这样的.从第三栏开始,他们没有上课.我必须指定columnClasses ="oddColumn,evenColumn,oddColumn"才能使它工作

这是一个错误还是我只是有一个错误的错误?

Bal*_*usC 13

重复仅适用于rowClasses.

JSF 2.0 h:dataTable标签文档:

columnClasses

以逗号分隔的CSS样式类列表,将应用于此表的列.还可以为任何单个列指定以空格分隔的类列表.如果此列表中的元素数小于UIData的实际列子数,则不会为每列输出大于列表中元素数的"class"属性.如果列表中的元素数大于UIData的实际列子元素数,则忽略最后一列之后的列表中位置的元素.


rowClasses

以逗号分隔的CSS样式类列表,将应用于此表的行.还可以为任何单独的行指定空格分隔的类列表.反过来,这些样式应用于表中的每一行.例如,如果列表有两个元素,则列表中的第一个样式类将应用于第一行,第二行应用于第二行,第一行应用于第三行,第二行应用于第四行等.换句话说,我们继续遍历列表直到我们到达结束,然后我们再次从头开始.

也许这本书错了,或者你误读了这本书.

由于列号通常总是在视图定义中固定,因此只需自己重复它们就不费吹灰之力了.

<h:dataTable columnClasses="oddColumn,evenColumn,oddColumn,evenColumn">
    <h:column></h:column>
    <h:column></h:column>
    <h:column></h:column>
    <h:column></h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)