JSF - h: panelGrid
A tag h: panel renderiza um elemento HTML "table".
Tag JSF
<h:panelGrid id = "panel" columns = "2" border = "1"
cellpadding = "10" cellspacing = "1">
<f:facet name = "header">
<h:outputText value = "Login"/>
</f:facet>
<h:outputLabel value = "Username" />
<h:inputText />
<h:outputLabel value = "Password" />
<h:inputSecret />
<f:facet name = "footer">
<h:panelGroup style = "display:block; text-align:center">
<h:commandButton id = "submit" value = "Submit" />
</h:panelGroup>
</f:facet>
</h:panelGrid>
Saída renderizada
<table id = "j_idt10:panel" border = "1" cellpadding = "10" cellspacing = "1">
<thead>
<tr><th colspan = "2" scope = "colgroup">Login</th></tr>
</thead>
<tfoot>
<tr>
<td colspan = "2">
<span style = "display:block; text-align:center">
<input id = "j_idt10:submit" type = "submit"
name = "j_idt10:submit" value = "Submit" />
</span>
</td>
</tr>
</tfoot>
<tbody>
<tr>
<td><label>Username</label></td>
<td><input type = "text" name = "j_idt10:j_idt17" /></td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input type = "password" name = "j_idt10:j_idt21" value = "" /></td>
</tr>
</tbody>
</table>
Atributos de tag
| S.Não | 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 | bgcolor Cor de fundo para a mesa |
| 7 | border Largura da borda da mesa |
| 8 | cellpadding Preenchimento em torno das células da mesa |
| 9 | cellspacing Espaçamento entre células da tabela |
| 10 | columnClasses Lista separada por vírgulas de classes CSS para colunas |
| 11 | columns Número de colunas na tabela |
| 12 | footerClass Classe CSS para o rodapé da tabela |
| 13 | frame moldura Especificação dos lados da moldura ao redor da mesa que serão desenhados; valores válidos: nenhum, acima, abaixo, hsides, vsides, lhs, rhs, box, border |
| 14 | headerClass Classe CSS para o cabeçalho da tabela |
| 15 | rowClasses Lista separada por vírgulas de classes CSS para colunas |
| 16 | rules Especificação para linhas desenhadas entre células; valores válidos: grupos, linhas, colunas, todos |
| 17 | summary Resumo da finalidade e estrutura da tabela usada para feedback não visual, como fala |
| 18 | dir Direção do texto. Os valores válidos sãoltr (da esquerda para a direita) e rtl (direita para esquerda) |
| 19 | lang Idioma base dos atributos e texto de um elemento |
| 20 | border Valor de pixel para a largura da borda de um elemento |
| 21 | title Um título, usado para acessibilidade, que descreve um elemento. Os navegadores visuais normalmente criam dicas de ferramentas para o valor do título |
| 22 | width Largura de um elemento |
| 23 | onblur Elemento perde o foco |
| 24 | onchange O valor do elemento muda |
| 25 | onclick O botão do mouse é clicado sobre o elemento |
| 26 | ondblclick O botão do mouse é clicado duas vezes sobre o elemento |
| 27 | onfocus Elemento recebe foco |
| 28 | onkeydown A tecla está pressionada |
| 29 | onkeypress A tecla é pressionada e posteriormente liberada |
| 30 | onkeyup Chave liberada |
| 31 | onmousedown O botão do mouse é pressionado sobre o elemento |
| 32 | onmousemove O mouse se move sobre o elemento |
| 33 | onmouseout O mouse sai da área do elemento |
| 34 | onmouseover O mouse se move para um elemento |
| 35 | onmouseup Botão do mouse liberado |
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 | Compile e execute o aplicativo para ter certeza de que a lógica de negócios está funcionando de acordo com os requisitos. |
| 4 | Por fim, construa o aplicativo na forma de um arquivo war e implante-o no Apache Tomcat Webserver. |
| 5 | Inicie seu aplicativo da web usando o URL apropriado, conforme explicado a seguir na última etapa. |
home.xhtml
<!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">
<head>
<title>JSF Tutorial!</title>
</head>
<body>
<h2>h:panelGrid example</h2>
<hr />
<h:form>
<h:panelGrid id = "panel" columns = "2" border = "1"
cellpadding = "10" cellspacing = "1">
<f:facet name = "header">
<h:outputText value = "Login"/>
</f:facet>
<h:outputLabel value = "Username" />
<h:inputText />
<h:outputLabel value = "Password" />
<h:inputSecret />
<f:facet name = "footer">
<h:panelGroup style = "display:block; text-align:center">
<h:commandButton id = "submit" value = "Submit" />
</h:panelGroup>
</f:facet>
</h:panelGrid>
</h:form>
</body>
</html>
Assim que você estiver pronto com todas as mudanças feitas, vamos compilar e rodar a aplicação como fizemos no capítulo JSF - Primeira Aplicação. Se tudo estiver bem com sua aplicação, isso produzirá o seguinte resultado.