« Destruir Celulares é muito divertido
Instalando Ubuntu no EeePC »

Publicado 15:27, 25 fevereiro , 2008 por Prof. Luis Eduardo

Sejam bem vindos, esta é a décima sexta aula de Programação Web em Java, para saber mais sobre o curso, começe em Curso de Programação Web em Java - CPWJ

Na última aula começamos a construir o sistema de busca. Configuramos o Hibernate para uso com o Netbeans. Esta primeira aplicação é para verem tudo funcionando junto. Depois irei destrinchar com detalhes cada parte do processo.

Camada Model

Hoje vamos terminar o sistema começando com a camada Model. A camada Model representa as entidades lógicas que precisamos para construir nossa aplicação. Para o funcionamento correto teremos a classe Sites, representando os sites armazenados no sistema, (isso já está pronto) e teremos também a classe MaquinaDeBusca.

A classe MaquinaDeBusca fará o trabalho pesado permitindo buscar uma lista de Sites de acordo com a palavra chave. Na verdade a classe de teste da última aula tem tudo que precisamos: A função “List buscaSites(String keyword)” realiza a busca dos itens com palavra chave igual ao parâmetro e devolve uma lista com os objetos que atendem a busca.

Camada View

A segunda camada que iremos trabalhar é a camada View. Vamos começar criando uma página JSP que apresenta um formulário para o preenchimento do usuário. Escolha “File/New File” no menu do Netbeans. Na janela “New File” selecione categoria “Web” tipo de arquivo “JSP” e clique em “Next”. Chame a página de “busca” e clique em “Finish”.

Para o formulário faremos algo bem simples:

<%@page contentType=”text/html” pageEncoding=”UTF-8″%>

<!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>Sistema de Busca</title>

</head>

<body>

<form action=”buscar.do”>

<input name=”buscar”/>

<input type=”submit” value=”Buscar”/>

</form>

</body>

</html>

Veja que o formulário chama a ação “buscar.do”. O que será esta ação definiremos pelo framework Struts. Já vamos chegar lá. Vamos também criar um página chamada resultado.jsp que permitirá ver a lista de Sites encontrados. Para funcionar vamos supor que temos uma variável de requisição com o resultado da busca:

<%@page contentType=”text/html” pageEncoding=”UTF-8″%>

<%@taglib uri=”http://struts.apache.org/tags-html” prefix=”html”%>

<%@taglib uri=”http://struts.apache.org/tags-logic” prefix=”logic”%>

<%@taglib uri=”http://struts.apache.org/tags-bean” prefix=”bean” %>

<!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>Sistema de Busca</title>

</head>

<body>

<form action=”buscar.do”>

<input name=”buscar”/>

<input type=”submit” value=”Buscar”/>

</form>

<logic:empty name=”sites” >

<h5>Nenhum Ítem Encontrado</h5>

</logic:empty>

<logic:notEmpty name=”sites”>

<table border=’1′>

<tr>

<th>Nome</th>

<th>Descrição</th>

<th>Url</th>

<th>Palavras Chave</th>

</tr>

<logic:iterate name=”sites” id=”site”>

<tr>

<td>${site.nome}</td>

<td>${site.descricao}</td>

<td>${site.url}</td>

<td>${site.keyword}</td>

</tr>

</logic:iterate>

</table>

</logic:notEmpty>

</body>

</html>

Os tags logic:empty e logic:iterate são bastante auto explicativos. São parte da biblioteca de componentes do Struts. Veja as linhas após o @page.

Camada Control

Agora só falta juntar todas as peças. Quem faz isso é a camada Control. E esta camada é implementada pelo framework Struts. Nós temos apenas que definir o que acontecerá em cada ação possível do usuário.

A única ação deste sistema que o usuário poderá executar é clicar em buscar no formulário de busca. Então vamos gerar um Ação Struts para tratar este evento.

Escolha novamente “File/New File” no menu do Netbeans e na janela “New File” escolha categoria “Struts”, tipo de arquivo “Struts Actions”. Clique em “Next” e digite o nome do Action como “buscarAction”, o package como “sbusca” e o action Path para “/buscar”. Clique em “Next” e desligue a opção “Use ActionForm Bean”. Clique em Finish.

Modifique a função “Execute” para determinar o que acontecerá ao clicar o botão Buscar:

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

MaquinaDeBusca mdb=new MaquinaDeBusca(); //Prepara um objeto do modelo

String busca= request.getParameter(”buscar”); //recupera o que o usuario digitou na caixa de texto

List sites=(ArrayList) mdb.buscaSites(busca); //Usa o modelo para obter os sites que batem com a palavra chave digitada pelo usuário

request.setAttribute(”sites”, sites); //armazena os sites encontrados para que a camada view (resposta.jsp) mostre a lista de sites encontrados

return mapping.findForward(SUCCESS); //passa a ação para o struts

}

(incluir “import java.util.*;” junto aos outros imports)

Falta muito pouco. Abra o arquivo struts-config.xml em WEB-INF na aba Project. Este arquivo está a configuração da amarração das ações com a views.

Modifique a linha <action path=”/buscar” type=”sbusca.buscarAction”/> para:

<action path=”/buscar” type=”sbusca.buscarAction”>

<forward name=”success” path=”/resultado.jsp”/>

</action>

Isso fará com que ao final da Action “BuscarAction” a página de resposta que irá para o usuário será a “resultado.jsp”.

Aproveite e defina a página padrão modificando a linha <action path=”/Welcome” forward=”/welcomeStruts.jsp”/> para: <action path=”/Welcome” forward=”/busca.jsp”/>

Pronto, basta executar a aplicação e terá o sistema funcionando! (tecla F6 ou menu Run/Run Main Project)

Sei que vão pintar milhares de dúvidas, porém estou aqui para esclarecer. (no fórum).

Na próxima aula vamos detalhar cada parte do processo, começando com um longo artigo sobre a camada Model.

Tecnoclasta ©2007-2025.

Artigos Relacionados


Deixe um Comentário

Nome:
Email:
Website:
Comentários:

Buscar:

Arquivos

Índice

Arquivo

fevereiro 2008
S T Q Q S S D
« jan   mar »
 123
45678910
11121314151617
18192021222324
2526272829  

RSS Meu FriendFeed

Contato