Fala ai galera… to com seguinte problema… estou fazendo um menu com primefaces
<h:form>
<p:menu type="tiered" style="width:180px">
<c:forEach items="#{menuBean.categorias}" var="categoria">
<p:submenu label="#{categoria.nome}" icon="ui-icon ui-icon-bullet">
<c:forEach items="#{categoria.subCategorias}" var="subCategoria">
<p:menuitem value="#{subCategoria.nome}" id="sub#{subCategoria.id}"
actionListener="#{categoriaBean.save}" update="messages"
icon="ui-icon ui-icon-bullet">
<f:setPropertyActionListener for="sub#{subCategoria.id}"
target="#{categoriaBean.subCategoria}" value="#{subCategoria}" />
</p:menuitem>
</c:forEach>
</p:submenu>
</c:forEach>
</p:menu>
</h:form>
Bean
........
@ManagedBean(name = "categoriaBean")
@ViewScoped
public class CategoriaBean implements Serializable {
private static final long serialVersionUID = 1L;
private SubCategoria subCategoria;
public void save() {
long sleepTime = 3000;
try {
System.out.println(getSubCategoria());
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public SubCategoria getSubCategoria() {
return subCategoria;
}
public void setSubCategoria(SubCategoria subCategoria) {
this.subCategoria = subCategoria;
}
}
Ocorre o seguinte… ao clicar no item… ele dispara o metodo SAVE antes de atribuir o valor no metodo setSubCategoria.
Depois de passar pelo save ele dispara o outro metodo.
O que pode está errado?
abraços