Estou iniciando em WebWork e estou com uma dúvida quanto a uma consulta:
1-Tenho uma tela JSP com um formulário onde a pessoa informa um parâmetro para pesquisa
2-Isto é enviado a uma action, que chama a classe que efetua a consulta
ResultSet query = null;
conn = Conexao.getConexao();
// seleciona todos os registros
String sql = "select * from cidade where nome=?";
try {
pstmt = conn.prepareStatement(sql);
stmt.setString(1,nome_passado)
query = pstmt.executeQuery();
if (query.next())
setRs(query);
} catch (SQLException sqlex) {
System.out.println("Erro ao capturar cidades:" + sqlex.getMessage());
} finally {
// Conexao.fechaConexao(conn);
}
Aí vem a pergunta, como eu devo fazer para passar os dados do ResultSet para a página JSP e exibí-los na página JSP???
Fiz o seguinte, tenho uma classe Cidade com os métodos gets e sets e uma ADOCidade com este método
public List selCidades() {
ResultSet query = null;
conn = Conexao.getConexao();
List cidades = new ArrayList();
String sql = "select * from cidade order by nome";
try {
pstmt = conn.prepareStatement(sql);
query = pstmt.executeQuery();
while (query.next())
{
ADOCidade ado = new ADOCidade();
ado.setId_estado(query.getInt("id_estado"));
ado.setNome(query.getString("nome"));
cidades.add(ado);
}
... fecho o ResultSet e a conexao
} catch (SQLException sqlex) {
System.out.println("Erro ao capturar cidades:" + sqlex.getMessage());
}
return cidades;
}
e tenho um JSP que eu gostaria de percorrer este List, mas não está funcionando
Popule a list na action e na view (jsp) só pecorra essa list, imprimindo os resultados. Acessar o DAO, no Jsp, quebra totalmente o MVC e faz a utilidade do Webwork ir pras cucuias.
Dá uma olhada nos tutoriais sobre o WW disponíveis aqui no GUJ.
Então, li todos, mas como eles não fazem acesso a banco de dados estou meio perdido
Digamos na seguinte situação
Eu tenho um JSP (formulário) onde é informado o nome do cliente
No action ele direciona para uma classe ActionCliente que eu montei com os gets e sets do Cliente
Eu possuo uma classe que faz o select e monta um List com os dados do RecorSet
E tenho uma classe Cliente apenas com gets e sets
Só para esclarecer
No meu action (utilizo WebWork) ele automaticamente insere os valores nos meus sets, logo, eu precisaria de uma classe Cliente apenas com gets e sets??? Pergunto pois tenho a seguinte situação do ADO popular o objeto cliente e inserir este objeto no List.
Eu chamarei a classe que efetua a consulta de dentro da Action???
Se eu chamar de dentro da Action como eu devolverei o objeto Lista para percorrê-lo em meu JSP???
Pensando desta maneira eu terei o JSP, o Action (com gets e sets), uma classe referente a tabela (com gets e sets) e uma outra classe responsável por maninupar os dados do banco de dados???
public class MyAction extends ActionSupport {
private List myList;
public String execute() {
// popula a lista
return SUCCESS;
}
public List getMyList() {
return myLIst
}
}
e com velocity bastaria algo como
#foreach( $obj in $myList )
<p>$obj.property</p>
#end
Pessoal, não quero ficar atrapalhando vocês, onde eu consigo um exemplo de um JSP que envia os dados para o Controller (WebWork) existe uma consulta no banco de dados e retorna pro JSP???
Aí eu estudo o exemplo
Uma pergunta referente a action, nela eu tenho os gets/sets do meu “formulario” e este são automaticamente populados, porém se eu for fazer um insert como ficaria???
digamos que eu tenho uma classe para efetuar o insert/update/delete/select de uma tabela como eu faria para esta classe “ver” os atributos que neste momento estão na Action???
Lipe, por nada neste mundo consegui exibir os dados vindos da Action, já tentei Velocity (conforme vc me passou), Taglibs e nada…
Normalmente eu uso uma camada intermediária entre a Action e o DAO para encapsular regras de negócio de aplicação.
Mas nada impede que voce use a Action para chamar DAO e não tem problema nenhum, a não ser que todas as regras de negócio e controles da sua aplicação estarão na Action.
Aqui na empresa usamos 4 camadas: apresentacao, servico, negocio e integracao
apresentacao: Struts, WebWork…
servico: validações de permissão de usuário a funcionalidade e desligamento da camada de apresentação com o negócio da aplicacao
negócio: regras de negócio e chamada ao DAO
integracao: DAOS e chamadas as persistências (Banco de dados, MainFrame)…
Muito bem, mas você possui os gets/sets nas Actions do WebWork???Como você passa estes valores para a camada de validação???
E quanto ao retorno para a View???