Hi,
I’m trying to do something like in the addAllToCart in « dvdstore » example, but without EJBs. It’s a list with check box and a command button to delete checked items. I’ve done a factory that generate the list and place it in the user session, and I’m retrieving it with Context.getSessionContext(). The thing is that the list stays empty. Anyone can help?
@Factory(value="deleteProjectList", scope=ScopeType.SESSION)
public Map<Project, Boolean> getDeleteProjectList()
{
if (deleteProjectList == null)
{
log.info("Setting delete List in session scope");
deleteProjectList = new HashMap<Project, Boolean>();
}
return deleteProjectList;
}
@SuppressWarnings("unchecked")
public void deleteAllCheck()
{
deleteProjectList = (Map<Project,Boolean>) Contexts.getSessionContext().get("deleteProjectList");
if (deleteProjectList != null)
{
log.info("Delete list : " + deleteProjectList.size());
for(Project project : getResultList())
{
Boolean selected = deleteProjectList.get(project);
if(selected != null && selected)
{
deleteProjectList.put(project, false);
log.info("Delete " + project.getName());
}
}
} else
log.info("null deleteList");
}
<rich:column > <f:facet name="header"><h:outputText value="Delete"></h:outputText></f:facet> <h:selectBooleanCheckbox value="#deleteProjectList[project]}"> </h:selectBooleanCheckbox> </rich:column>
<s:button value="#{messages['Delete']}" action="#{projectList.deleteAllCheck}"></s:button>