2013-11-01 6 views
0

У меня есть ниже составного компонентаPrimeFaces DataTable Композитный Компонентный Значение по умолчанию

<ui:component xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:cc="http://java.sun.com/jsf/composite" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:c="http://java.sun.com/jsp/jstl/core" 
    xmlns:p="http://primefaces.org/ui"> 

    <cc:interface> 
     <cc:attribute name="rows" /> 
     <cc:attribute name="value" 
      type="org.primefaces.model.LazyDataModel" /> 
     <cc:attribute name="var" /> 
     <cc:attribute name="id" /> 
     <cc:attribute name="rowStyle" default="false"/> 
    </cc:interface> 

    <cc:implementation> 
     <p:dataTable value="#{cc.attrs.value}" 
      rendered="#{not empty cc.attrs.value}" id="#{cc.attrs.id}" 
      paginator="true" rows="25" 
      currentPageReportTemplate="Showing {startRecord}-{endRecord} of {totalRecords}" 
      paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
      rowsPerPageTemplate="25,50,100" paginatorPosition="bottom" 
      lazy="true" rowStyleClass="#{cc.attrs.rowStyle}"> 
      <c:set target="#{component}" property="var" value="#{cc.attrs.var}"/> 
      <cc:insertChildren /> 
     </p:dataTable> 
    </cc:implementation> 
</ui:component> 

Мое требование: В некоторых случаях, я передам значение RowStyle в противном случае, если значение не передается, он должен принять значение по умолчанию.

Я добавленный ниже линии в моем композитном компоненте

<cc:attribute name="rowStyle" default="false"/> 

Но это не работает. Зачем?

ответ

0

Я думаю, что вам нужно ввести имя класса acctual CSS в значение по умолчанию.

Значением по умолчанию является флаг true/false, а поле с фактическим значением.

1

Имейте в виду, что атрибут default для обработки случая, когда атрибут не передается, не тот случай, когда атрибут является нулевым.

Таким образом, учитывая этот интерфейс:

<cc:interface> 
    <cc:attribute name="monkey" /> 
    <cc:attribute name="food" default="banana" /> 
</cc:interface> 

Если я вызываю его, как это, значение food будет banana:

<barrel monkey="Bonzo" /> 

Однако, если myFood является null и я вызываю его, как это:

<barrel monkey="Bonzo" food="#{myFood}" /> 

Тогда значение food будет null.

Смежные вопросы