JSF – Agrupando elementos com SelectItemGroup

Neste post irei demonstrar como agrupar elementos utilizando SelectItemGroup em componentes do tipo <h:selectOneMenu>.

Criei um projeto bem simples pra ilustrar o funcionamento do combo que poderá ser melhorado dependendo da necessidade.

Disponibilizei o projeto para download no fim do post.

Estrutura do projeto

MB.java

public class MB implements Serializable {
private Collection items;
public MB() {
items = new ArrayList(2);
SelectItem options1[] = {
new SelectItem("200", "Abacate", ""),
new SelectItem("202", "Maçã",""),
};
SelectItem options2[] = {
new SelectItem("201", "Batata", ""),
new SelectItem("203", "Repolho", ""),
};
SelectItemGroup g1 = new SelectItemGroup("Frutas", null, true, options1);
SelectItemGroup g2 = new SelectItemGroup("Legumes", null, false, options2);
items.add(g1);
items.add(g2);
}
public Collection getItems() {
return items;
}
public void setItems(Collection group1) {
this.items = group1;
}
}

combo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Combo dois níveis</title>
</head>
<body>
<f:view>
<h:form>
<h:messages/>
<h:selectOneMenu>
<f:selectItems value="#{MB.items}" />
</h:selectOneMenu>
</h:form>
</f:view>
</body>
</html>

Importando o projeto

  1. Baixe o projeto completo >>aqui<<;
  2. Descompacte o projeto no seu workspace;
  3. No Eclipse vá em: File –> Import –> General – Existing Projects into Workspace –> Next –> Selecione o projeto descompactado no workspace –> Finish.

Até o próximo post!



Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s