Você está aqui: JSP (Java Server Pages) ::: Dicas de Estudo e Anotações ::: Passos Iniciais

Aprenda a importar suas próprias classes para uma página JSP

Quantidade de visualizações: 35 vezes
Vimos em dicas anteriores que pacotes de classes ou classes individuais podem ser importados para uma página JSP usando-se o atributo import na diretiva de página:

<%@ page import="java.util.*" %>

Neste tópico veremos como é possível criar nossas próprias classes e usá-las em uma página JSP. Será um bom exercício antes de estudarmos JavaBeans. Comece escrevendo a seguinte classe:

Código para Estados.java:
package estudos;

public class Estados{
  String selecionado;
  String estados[] = {"GO", "MT", "SP", "RJ", "TO",
                      "MA", "RS", "MG", "CE", "SC"};

  public Estados(String sel){
    selecionado = sel;
  }

  public Estados(){
    selecionado = estados[0];
  }

  public String toString(){
    String html = "<select name="estado">
";

    for(int i = 0; i < estados.length; i++){
      if(estados[i].equals(selecionado))
        html += " <option value="" + 
             estados[i] + "" selected>" + 
             estados[i] + "</option>
";
      else
        html += " <option value="" + estados[i] + "">" + 
             estados[i] + "</option>
"; 
    }

    html += "</select>";

    return html;
  }
}
Experimente compilar esta classe e vamos analisá-la cuidadosamente. O primeiro passo é observar que esta classe fará parte de um pacote chamado estudos:

package estudos;

Assim, nossa primeira preocupação é como disponibilizar a classe de modo que a aplicação web a encontre. Nada muito complicado. Tudo que você tem a fazer é criar um diretório chamado estudos dentro do diretório classes que está contido no diretório WEB-INF de sua aplicação web. Agora copie o arquivo Estados.class para o diretório recém-criado.

Nota: Se você fizer alterações na classe depois de esta ser disponibilizada para o container, pode haver a necessidade de reiniciar a aplicação web para que as alterações sejam refletidas. Visite www.recomende.com para aprender como fazer isso no Tomcat.

O nome de nossa classe personalizada é Estudos e servirá para montar um elemento HTML select contendo os nomes de todos os estados. Esta classe contém duas variáveis globais. A primeira é apenas uma String que armazenará o valor do estado que deverá aparecer selecionado no elemento select:

String selecionado;

A segunda variável é um array do tipo String contendo os estados a serem mostrados no elemento:
String estados[] = {"GO", "MT", "SP", "RJ", "TO",
                    "MA", "RS", "MG", "CE", "SC"};
Por questões de espaço não coloquei todos os estados, faça isso se quiser usar este código em uma aplicação real.

O primeiro construtor da classe receberá como argumento o estado que deverá estar selecionado e o fornecerá à variável global selecionado:
public Estados(String sel){
  selecionado = sel;
}
O segundo construtor (que pode ser chamado sem argumentos) simplesmente fornece o primeiro elemento do array estados à variável selecionado:
public Estados(){
  selecionado = estados[0];
}
E agora a parte mais complexa da classe: o método toString. É com o auxilio deste método que conseguimos montar o elemento select na página. A primeira linha do método:

String html = "<select name="estado"> ";

cria uma variável chamada html e define como seu valor a tag de abertura do elemento select. Fique atento ao uso da barra de escape "" para preservar as aspas que circundam os valores fornecidos aos atributos do elemento. A quebra de linha não é obrigatória. Ela apenas ajudará na formatação do código fonte da página.

Em seguida temos um laço for que é executado uma vez para cada elemento do array estados:
for(int i = 0; i < estados.length; i++){
  // o código do laço vai aqui
}
Na primeira linha dentro deste laço nós testamos se o valor do array sendo lido é igual ao conteúdo da variável selecionado. Se o teste resultar verdadeiro, nós acrescentamos o atributo selected ao elemento option. Isso faz com que o valor seja selecionado quando o elemento select for exibido na página:
if(estados[i].equals(selecionado))
  html += " <option value="" + estados[i] + "" 
     selected>" + estados[i] + "</option>
";
else
  html += " <option value="" + estados[i] + "">" +
     estados[i] + "</option>
"; 
se o teste resultar falso nós simplesmente criamos elementos option com os valores do array.

A linha:

return html;

Devolverá à página JSP o conteúdo HTML a ser exibido.

Pronto. A classe já está criada. Agora é hora de testá-la em uma página JSP. Veja o código:

Código para testar_classe.jsp:
<%@ page language="java" import="estudos.*" %>
<html>
<head>
<title>Importando classes personalizadas</title>
</head>
<body>

<form>
Selecione o Estado: <%= new Estados("MT") %>
</form>

</body>
</html>
Execute esta página e observe o resultado obtido.

Veja como a classe é importada:

<%@ page language="java" import="estudos.*" %>

Aqui estamos importando todo o pacote estudos. Se quiser importar apenas a classe Estados, basta alterar a diretiva para:

<%@ page language="java" import="estudos.Estados" %>

Observe agora a expressão JSP usada para exibir os estados na página:

<%= new Estados("MT") %>

Tudo que fizemos aqui foi construir uma instancia da classe Estados e fornecer o valor que deverá aparecer selecionado no elemento select. Experimente construir uma instancia usando o construtor padrão (sem argumentos):

<%= new Estados() %>

Estude bastante este tópico. Será o ponto de partida para o uso de JavaBeans e construções de bibliotecas de tags personalizadas.

Link para compartilhar na Internet ou com seus amigos:

Vamos testar seus conhecimentos em

Cisalhamento e detalhamento de vigas

Conforme a NBR 6118 (ABNT, 2014), a armadura transversal mínima deve ser colocada nas vigas de modo a garantir a estabilidade das estruturas, mesmo na eventualidade de serem aplicados carregamentos não previstos no cálculo, evitando a ruptura abrupta logo após o surgimento das primeiras fissuras inclinadas.

Nesse contexto, qual a armadura transversal mínima necessária por metro de viga, tendo em vista que ela tem seção de 30 x 80cm e altura útil de 77cm? Adote concreto C35 e aço CA-50.

A) 2,43cm2/m.

B) 2,84cm2/m.

C) 3,12cm2/m.

D) 3,54cm2/m.

E) 3,85cm2/m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Densidade de um fluido

Um fluido encontra-se em um recipiente com volume de 300L. Sabendo que a massa desse fluido é de 2kg, qual a sua densidade em kg/m3?

A) 0,67kg/m3.

B) 6,67kg/m3.

C) 0,15kg/m3.

D) 150kg/m3.

E) 151,5kg/m3.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valores = [5, 2, 7, 1, 4, 9, 6]
contador = len(valores)
while contador >= 0:
  print(valores[contador], end="  ")
  contador = contador - 2

A) Erro IndexError: list index out of range na linha 4

B) 6 4 7 5

C) Erro SyntaxError: invalid syntax na linha 5

D) 2 1 9

E) 1 4 9 6
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

# cria uma string
palavra = "BRASIL"
print("A letra é: {0}".format(palavra(2)))

A) A letra é: A

B) Um erro TypeError: 'str' object is not callable

C) A letra é: R

D) Um erro SyntaxError: EOL while scanning string literal

E) A letra é: {0}
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual evento JavaScript ocorre quando o usuário clica em um elemento HTML?

A) onchange

B) onmouseover

C) onmouseclick

D) onclick
Verificar Resposta Estudar Cards Todas as Questões

Veja mais Dicas e truques de JSP (Java Server Pages)

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.