Problemas com selectBooleanCheckBox

Pessoal,

Boa tarde !!!
Será que algué pode me ajudar ???!!
Bom, vamos lá…

Tenho um dataTable, do rich, que me traz uma lista de List products…
Como chamei esta lista de product, em uma coluna minha teria de ficar asim (coluna com checkBox par edição) :

<rich:column id=“edit” styleClass=“alignTableCenter” >
<h:selectBooleanCheckbox id=“check” value="#{manualBean.selectedIds[product.id]}" />
</rich:column>

Queria que meu selectedIds busca-se os id’s dos mus produtos que estão nesta coluna :
<rich:column id=“manualFilterID” title="#{manualFilter.id}" styleClass=“alignTableCenter” >
<f:facet name=“header”>
<h:outputText value="#{manualFilter.id}" id=“id” />
</f:facet>
<h:outputText value="#{product.id}" />
</rich:column>

No meu bean tenho um método que é acionado em um botão de edição do meu xhtml :
<h:commandButton title="#{tpl.changeStatus}" id=“statusProduct” type=“button” value=“Alterar Status” action="#{manualBean.changeStatus}" />

No meu Bean chamei o selectedIds :
private Map<Long, Boolean> selectedIds = new HashMap<Long, Boolean>();

public Map<Long, Boolean> getSelectedIds() {
return selectedIds;
}

public void setSelectedIds(Map<Long, Boolean> selectedIds) {
this.selectedIds = selectedIds;
}

Método :
public String changeStatus() {
Set keySet = selectedIds.keySet();
List ids = new ArrayList();

	for (Long long1 : keySet) {
		if (selectedIds.get(long1).booleanValue())
			ids.add(long1);
	}
	if (ids == null || products == null || ids.size() <= 0
			|| products.size() <= 0)
		return Navigation.SAME;
	else
		for (Long id : ids) {
			AnnounceKeyword ank = announceKeywordListDAO.get(
					AnnounceKeyword.class, id);
			
			if (ank.getStatus() == AnnounceKeywordStatus.Normal
						|| ank.getStatus() == AnnounceKeywordStatus.Active) {
				ank.setStatus(AnnounceKeywordStatus.OnHold);
			} else {
				if (ank.getStatus() == AnnounceKeywordStatus.OnHold
							|| ank.getStatus() == AnnounceKeywordStatus.Paused) {
					ank.setStatus(AnnounceKeywordStatus.Normal);
				}
			}
			announceKeywordListDAO.update(ank);
		}	
	return Navigation.SAME;
}	

Finalmente, o problema é que não consigo retornar nem os Longs e nem o Bolleans do meu selectedIds.
O que será que está ocorrendo…
Obs : Esta controller está em REQUEST !!!

Fico no aguardo de uma ajuda…
Não sei onde este erro persiste.

Valeu…
Abs,

Fala philip, tudo blz?

Brother, primeiro voce tem quepor seu codigo entre as tags CODE da vida, assim fica mais facil o pessoal analisar, ok?

Outra coisa, voce disse que nao estava conseguindo retornar nem longs e booleans?? o que acontece? retorna algum erro? nao faz nada?

Posta ai, que o pessoal te orienta, blz?

abraço

Opa desculpa…

Mas vamos lá !!!
Então retorno null para meu selectedID…

Veja como está.
Vou passar a parte do xhtml, e depois a controller :

XHTML :

<rich:dataTable id="tProducts" width="100%" value="#{manualBean.products}" rows="15" var="product" rowClasses="linhaClara, linhaEscura">
						
				<rich:column id="edit" styleClass="alignTableCenter" >
						<h:selectBooleanCheckbox id="check" value="#{manualBean.selectedIds[product.id]}" />
				</rich:column>
				
				<rich:column id="manualFilterID" title="#{manualFilter.id}" styleClass="alignTableCenter" >
					<f:facet name="header">
						<h:outputText value="#{manualFilter.id}" id="id" />
					</f:facet>
					<h:outputText value="#{product.id}" />
				</rich:column>
</rich:dataTable>

CONTROLLER

private Map<Long, Boolean> selectedIds = new HashMap<Long, Boolean>();
public Map<Long, Boolean> getSelectedIds() {
		return selectedIds;
	}
	
	public void setSelectedIds(Map<Long, Boolean> selectedIds) {
		this.selectedIds = selectedIds;
	}
public String changeStatus() {
		Set<Long> keySet = selectedIds.keySet();
		List<Long> ids = new ArrayList<Long>();
		
		for (Long long1 : keySet) {
			if (selectedIds.get(long1).booleanValue())
				ids.add(long1);
		}
		if (ids == null || products == null || ids.size() <= 0
				|| products.size() <= 0)
			return Navigation.SAME;
		else
			for (Long id : ids) {
				AnnounceKeyword ank = announceKeywordListDAO.get(
						AnnounceKeyword.class, id);
				
				if (ank.getStatus() == AnnounceKeywordStatus.Normal
							|| ank.getStatus() == AnnounceKeywordStatus.Active) {
					ank.setStatus(AnnounceKeywordStatus.OnHold);
				} else {
					if (ank.getStatus() == AnnounceKeywordStatus.OnHold
								|| ank.getStatus() == AnnounceKeywordStatus.Paused) {
						ank.setStatus(AnnounceKeywordStatus.Normal);
					}
				}
				announceKeywordListDAO.update(ank);
			}	
		return Navigation.SAME;
	}	

Pronto, o problema é que este mu selectedId retorna nulo…
Isto não deveria acontecer.
Será que alguém poderia me ajudar ???!!

Abs,