JSF - h: selectManyListbox
A tag h: selectManyListbox renderiza um elemento de entrada HTML do tipo "select" com tamanho e multiple Especificadas.
Tag JSF
<h:selectManyListbox value = "#{userData.data}">
<f:selectItem itemValue = "1" itemLabel = "Item 1" />
<f:selectItem itemValue = "2" itemLabel = "Item 2" />
</h:selectOneListbox>
Saída renderizada
<select name = "j_idt6:j_idt8" size = "2" multiple = "multiple">
<option value = "1">Item 1</option>
<option value = "2">Item 2</option>
</select>
Atributos de tag
S.No | Atributo e descrição |
---|---|
1 | id Identificador para um componente |
2 | binding Referência ao componente que pode ser usado em um backing bean |
3 | rendered Um booleano; falso suprime a renderização |
4 | styleClass Nome da classe da folha de estilo em cascata (CSS) |
5 | value O valor de um componente, normalmente uma associação de valor |
6 | valueChangeListener Uma ligação de método a um método que responde a alterações de valor |
7 | converter Nome da classe do conversor |
8 | validator Nome da classe de um validador que é criado e anexado a um componente |
9 | required Um booleano; se verdadeiro, requer que um valor seja inserido no campo associado |
10 | accesskey Uma chave, normalmente combinada com uma metakey definida pelo sistema, que dá foco a um elemento |
11 | accept Lista separada por vírgulas de tipos de conteúdo para um formulário |
12 | accept-charset Lista separada por vírgulas ou espaços de codificações de caracteres para um formulário. oaccept-charset atributo é especificado com o atributo JSF HTML chamado acceptcharset. |
13 | alt Texto alternativo para elementos não textuais, como imagens ou miniaplicativos |
14 | charset Codificação de caracteres para um recurso vinculado |
15 | coords Coordenadas para um elemento cuja forma é um retângulo, círculo ou polígono |
16 | dir Direção do texto. Os valores válidos sãoltr (da esquerda para a direita) e rtl (direita para esquerda) |
17 | disabled Estado desabilitado de um elemento de entrada ou botão |
18 | hreflang Idioma base de um recurso especificado com o href atributo; hreflang só pode ser usado com href. |
19 | lang Idioma básico dos atributos e texto de um elemento |
20 | maxlength Número máximo de caracteres para campos de texto |
21 | readonly Estado somente leitura de um campo de entrada; o texto pode ser selecionado em um campo somente leitura, mas não editado |
22 | rel Relação entre o documento atual e um link especificado com o href atributo |
23 | rev Link reverso da âncora especificada com hrefao documento atual. O valor do atributo é uma lista separada por espaços de tipos de link |
24 | rows Número de linhas visíveis em uma área de texto. h:dataTable tem um rows atributo, mas não é um atributo de passagem HTML. |
25 | shape Forma de uma região. Valores válidos:default, rect, circle, poly. (o padrão significa toda a região) |
26 | style Informação de estilo inline |
27 | tabindex Valor numérico que especifica um índice de tabulação |
28 | target O nome de uma moldura na qual um documento é aberto |
29 | title Um título, usado para acessibilidade, que descreve um elemento. Navegadores visuais normalmente criam dicas de ferramentas para o valor do título |
30 | type Tipo de link; por exemplo,stylesheet |
31 | width Largura de um elemento |
32 | onblur Elemento perde o foco |
33 | onchange O valor do elemento muda |
34 | onclick O botão do mouse é clicado sobre o elemento |
35 | ondblclick O botão do mouse é clicado duas vezes sobre o elemento |
36 | onfocus Elemento recebe foco |
37 | onkeydown A tecla está pressionada |
38 | onkeypress A tecla é pressionada e posteriormente liberada |
39 | onkeyup Chave liberada |
40 | onmousedown O botão do mouse é pressionado sobre o elemento |
41 | onmousemove O mouse se move sobre o elemento |
42 | onmouseout O mouse sai da área do elemento |
43 | onmouseover O mouse se move para um elemento |
44 | onmouseup O botão do mouse é liberado |
45 | onreset O formulário foi reiniciado |
46 | onselect O texto é selecionado em um campo de entrada |
47 | size Tamanho do campo de entrada |
Aplicação de exemplo
Vamos criar um aplicativo JSF de teste para testar a tag acima.
Degrau | Descrição |
---|---|
1 | Crie um projeto com o nome helloworld sob um pacote com.tutorialspoint.test conforme explicado no capítulo JSF - Primeira Aplicação . |
2 | Modifique home.xhtml conforme explicado abaixo. Mantenha o resto dos arquivos inalterados. |
3 | Crie result.xhtml no diretório webapps conforme explicado abaixo. |
4 | Crie UserData.java como um bean gerenciado no pacote com.tutorialspoint.test conforme explicado abaixo. |
5 | Compile e execute o aplicativo para ter certeza de que a lógica de negócios está funcionando de acordo com os requisitos. |
6 | Por fim, construa o aplicativo na forma de um arquivo war e implante-o no Apache Tomcat Webserver. |
7 | Inicie seu aplicativo da web usando o URL apropriado, conforme explicado abaixo na última etapa. |
UserData.java
package com.tutorialspoint.test;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name = "userData", eager = true)
@SessionScoped
public class UserData implements Serializable {
private static final long serialVersionUID = 1L;
public String[] data = {"1","2","3"};
public String[] getData() {
return data;
}
public void setData(String[] data) {
this.data = data;
}
}
home.xhtml
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml"
xmlns:f = "http://java.sun.com/jsf/core"
xmlns:h = "http://java.sun.com/jsf/html">
<head>
<title>JSF Tutorial!</title>
</head>
<h:body>
<h2>h:selectManyListbox example</h2>
<hr />
<h:form>
<h3>List Box</h3>
<h:selectManyListbox value = "#{userData.data}">
<f:selectItem itemValue = "1" itemLabel = "Item 1" />
<f:selectItem itemValue = "2" itemLabel = "Item 2" />
<f:selectItem itemValue = "3" itemLabel = "Item 3" />
<f:selectItem itemValue = "4" itemLabel = "Item 4" />
<f:selectItem itemValue = "5" itemLabel = "Item 5" />
</h:selectManyListbox>
<h:commandButton value = "Submit" action = "result" />
</h:form>
</h:body>
</html>
result.xhtml
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml"
xmlns:f = "http://java.sun.com/jsf/core"
xmlns:h = "http://java.sun.com/jsf/html"
xmlns:ui = "http://java.sun.com/jsf/facelets">
<h:body>
<h2>Result</h2>
<hr />
<ui:repeat value = "#{userData.data}" var = "s">
#{s}
</ui:repeat>
</h:body>
</html>
Quando você estiver pronto com todas as alterações feitas, vamos compilar e executar o aplicativo como fizemos no capítulo JSF - Criar Aplicativo. Se tudo estiver certo com sua aplicação, isso produzirá o seguinte resultado.
Selecione vários valores e pressione Submitbotão. Selecionamos quatro itens. Você verá os resultados selecionados.