Você pode arrastar o componente Lista suspensa
da Paleta para o Visual Designer para criar uma Lista suspensa (ou caixa de combinação) que permite ao usuário clicar em um botão e selecionar itens na lista.
Uma Lista suspensa é uma lista de itens que é exibida inicialmente como um único item e, quando clicada, exibe uma lista de vários itens. É possível selecionar apenas um item por vez. As listas suspensas são semelhantes às caixas de combinação no Java Swing e no Microsoft Windows, e são denominadas listas de seleção em HTML.
Você pode definir a propriedade items para associar o componente a uma tabela de banco de dados ou a uma matriz, um java.util.Collection ou um java.util.Map de objetos com.sun.webui.jsf.model.Option para preencher a lista. Clique com o botão direito do mouse no componente e escolha Vincular aos dados para definir esta propriedade. Na , é possível visualizar o objeto padrão que preenche a lista, que possui um nome semelhante a dropDown1DefaultOptions. Para obter mais informações sobre a configuração padrão desta propriedade, consulte Exibição padrão de itens suspensos mais adiante neste tópico.
A propriedade selected pode ser usada para associar o componente a um objeto de modelo que representa a seleção atual. Para isso, defina o valor de uma expressão que corresponda a uma propriedade de um bean gerenciado. Você pode clicar com o botão direito do mouse no componente e escolher Vinculações de propriedade para vincular a propriedade selected na caixa de diálogo Vinculações de propriedade.
Na primeira vez que o componente é renderizado, a opção que corresponde ao valor da propriedade do objeto de modelo selected é marcada como selecionada usando os mesmos métodos no objeto de modelo.
Abaixo se encontram algumas ações que podem ser realizadas com este componente:
Option, você pode atribuir objetos OptionGroup para criar grupos de opções separados.label.
label não é tão flexível quanto o componente Rótulo. Você pode usar o componente Rótulo se quiser ter mais controle sobre a aparência do rótulo, tal como o seu posicionamento em relação ao componente.validate do componente para que você possa inserir o código para validar o valor do componente. do componente para que você possa inserir o código que é executado quando o valor deste componente sofrer alterações. Este método é executado quando você seleciona Enviar automaticamente ao alterar no menu pop-up do componente, que envia a página quando o valor do componente for alterado. Esta técnica é útil se o componente fizer parte de um formulário virtual.common_timeoutSubmitForm(this.form, 'id-do-componente');. Em tempo de execução, este código faz com que o formulário seja enviado automaticamente se o usuário alterar o valor do componente. Depois de o formulário ter sido enviado, ocorre a conversão e a validação no servidor, quaisquer métodos ouvintes de alteração de valor são executados e, em seguida, a página é reexibida.
Se tiver o código que deseja executar quando a página for enviada, coloque-o no método processValueChange descrito acima.
Um componente configurado como Enviar automaticamente ao alterar pode usar formulários virtuais para limitar os campos de entrada processados quando o formulário é enviado. Se o componente de envio automático for definido para enviar um formulário virtual, somente os participantes de tal formulário virtual serão processados quando o envio automático ocorrer.
items do componente a um objeto ou a um provedor de dados, conforme descrito em Caixa de diálogo Vincular aos dados.
items a um objeto, selecione a guia Vincular a objeto e, em seguida, selecione uma propriedade do Bean que será usada para preencher a lista. A propriedade do Bean deve ser um conjunto, mapa ou matriz de Object cujos membros são todas as subclasses de com.sun.webui.jsf.model.Option.
items a um provedor de dados de uma tabela de banco de dados que será usado para preencher a lista, selecione a guia Vincular ao provedor de dados de uma tabela de banco de dados que foi adicionada à página.dropDown#DefaultOptions e alterar os valores e a exibição dos itens da lista e escolher o item selecionado por padrão quando a lista é exibida pela primeira vez. É provável que, em vez disso, você vinculará a propriedade items a um banco de dados ou objeto que definirá os itens da lista, conforme descrito acima em Vincular aos dados.selected, que você pode vincular a uma matriz Object, matriz de primitivos ou ArrayList. Você deve adicionar a matriz a um bean gerenciado, tal como o bean de sessão, como uma propriedade. Você pode usar esta propriedade de Bean para avaliar o que o usuário escolhe depois que a página é enviada.Por padrão, uma lista suspensa exibe seus itens de lista usando um objeto de tipo SingleSelectOptionsList com um nome baseado no ID de componente padrão. Por exemplo, a primeira lista suspensa que você solta em uma página é inicialmente chamada dropDown1 e possui uma matriz dropDown1DefaultOptions associada a ela que você pode ver na
Você pode definir os valores deste objeto matriz clicando com o botão direito do mouse no componente Lista suspensa e escolhendo Configurar opções padrão para abrir a caixa de diálogo Personalizador de opções. Nesta caixa de diálogo você pode adicionar novos itens ou excluir itens existentes, pode definir o valor exibido (Exibição) e o valor do item (Valor) e pode selecionar que item será exibido por padrão (Selecionado). O objeto dropDown#DefaultOptions é uma matriz que armazena os valores de exibição nos campos label e os valores de Valor nos campos value.
O código de amostra seguinte ilustra como você pode usar este objeto e a propriedade select da lista suspensa para determinar que item está selecionado atualmente e escrever os valores de Exibição e Valor, label e value, em dois campos de texto estático para exibição. Se adicionar uma lista suspensa e dois componentes de texto estático à página e, em seguida, colocar este código no método processValueChange da lista suspensa, conforme descrito acima, e selecionar Enviar automaticamente ao alterar para o componente, quando o usuário selecionar um item na lista, os valores de Exibição e Valor serão exibidos nos dois campos de texto estático.
String myvalue = (String)dropDown.getSelected();1
int numOptions = dropDown1DefaultOptions.getOptions().length;
int i = 0;
for (i = 0; i < numOptions; i++) {
if (myvalue.equals(dropDown1DefaultOptions.getOptions()[i].getValue()))
break;
}
if (i < numOptions) {
staticText1.setText(dropDown1DefaultOptions.getOptions()[i].getLabel());
staticText2.setText(dropDown1DefaultOptions.getOptions()[i].getValue());
} else {
staticText1.setText("not found"); // should not get here
}