2013-12-13 3 views
1

Я читал/пытался примерять часы, и я не могу заставить его работать. Я использую Primefaces 4.0p: selectBooleanButton не отображает предварительно выбранное значение

Я просто нужен способ, чтобы выбрать/снять и назначить эти значения на карте

XHTML выглядит следующим образом.

<p:selectBooleanButton value="#{presupuestoBean.itemsCambiar[itemPresupuesto.id]}" 
onLabel="Yes" offLabel="No" onIcon="ui-icon-check" offIcon="ui-icon-close"> 
    <p:ajax listener="#{presupuestoBean.updateItemPresupuestoAsignado(itemPresupuesto.id,0)}"/> 
</p:selectBooleanButton> 

Init Метод (сброс к Ложные только в том случае, а затем присвоить истинные значения)

for (ItemPresupuesto itemsPresupuestoDefault : itemsPresupuestoDefaults) { 
     itemsCambiar.put(itemsPresupuestoDefault.getId(),Boolean.FALSE); 
    } 

Присвоить Истинные значения

if (itemPresupuestoAsignado.isCambiar()) { 
      itemsCambiar.put(itemPresupuestoAsignado.getId(), Boolean.TRUE); 

     } 

и

public Map<Long, Boolean> getItemsCambiar() { 
     return itemsCambiar; 
    } 

Мои ожидаемое поведение - когда itemsCamb iar имеет некоторый элемент «ИСТИНА», должен отображаться onIcon. Но это не происходит, все p: selectBooleanButton отображаются как offIcon.

Я замечаю пару вещей во время отладки.

  • Булево значение, назначенное в Init, назначается надлежащим образом.
  • Если изменить selectBooleanButton для outputLabel, показывает «истина» (что правильно)
  • Когда я изменяю selectBooleanButton, и событие срабатывает, я могу видеть, что «истинное» значение в HashMap является не java.lang.Boolean но java.lang.String (приложение)

так что, возможно, эта проблема связана с проблемой произнесения, но я ставлю Boolean.TRUE на карте, так что ... любые идеи?

enter image description here

+0

@BalusC Я не следую за вами, возможно, из-за имени свойства. Свойством map является «itemsCambiar», и это hashmap. ItemPresupuesto не имеет логического свойства 'cambiar' – psabbate

+0

@BalusC, я исправил проблему. Однако я не очень доволен решением, и я замечаю, что вы являетесь экспертом в JSF, не могли бы вы проверить мою собственную ответную ссылку. Благодаря! – psabbate

ответ

-1

Наконец я установил изменение Ui: Повторяю ч: DataTable, (я не знаю, почему работает).

я создал еще один вопрос, чтобы запросить помощь по этому поводу ui:repeat vs h:datatable behavior

Спасибо,

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