2014-01-03 2 views
0

Я использую обработанный attritube для отображения «x» в моем datatable. X печатается каждый раз, даже если его значение ложно.icefaces 3.3 rendered attribute не работает правильно

   <ace:column id="aktiviert" headerText="Aktiviert" sortBy="#{user.aktiviert}" filterBy="#{user.aktiviert}"> 
        <ace:cellEditor> 
         <f:facet name="output"> 
          <h:outputText value="x" rendered="#{user.aktiviert}"/> 
         </f:facet> 
         <f:facet name="input"> 
          <ace:checkboxButton id="aktiviertInput" value="#{user.aktiviert}" />      
         </f:facet> 
        </ace:cellEditor>  
       </ace:column> 

Если я еще что-то поставил перед выходом, он работает!

     <f:facet name="output"> 
          <h:outputText value="" rendered="#{user.aktiviert}"/> 
          <h:outputText value="x" rendered="#{user.aktiviert}"/> 
         </f:facet> 

Теперь x печатается только в том случае, если логическое значение на бэкэнд является истинным. При первом доступе мой обработанный атрибут всегда работает так, как это значение истинно.

Есть ли известная ошибка? Это происходит с момента обновления от ледников с 3.2 до 3.3.

Это мой приемник на Сущности.

@Column(name = "AKTIVIERT") 
public Boolean getAktiviert() { 
    System.out.println("Aktiviert : " + aktiviert); 
    if (aktiviert == null) { 
     return false; 
    } else { 
     return aktiviert; 
    } 
} 

ответ

0

, если вы меняете свойства через AJAX, вам нужно будет использовать «alwaysExecuteContents» на асе: DataTable. Я сделал быстрый тест и обнаружил, что после установки этого атрибута «true», флаг render на грани был обновлен должным образом.

+0

спасибо. но я не изменяю никаких значений с помощью ajax. рендеринг идет неправильно при начальной загрузке сайта jsf. alwaysExecuteContents не работает. мои другие столбцы напечатаны правильно. только обработанный атрибут в h: outputtext не работает при первом доступе. – Nils

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