Gravar, Alterar, Excluir, Localizar no mesmo form usando Struts  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

Galera estou com mais um dúvida!!!!!!!!!!

Estou usando Struts, como eu posso fazer para gravar, alterar, excluir e localizar tudo em um só formulário?

Alguém pode me ajudar?
[Email] [MSN]
kamikazeishida
JavaChild
[Avatar]

Membro desde: 26/04/2006 09:12:58
Mensagens: 140
Localização: Curitiba Pr
Offline

http://www.ucb.br/prg/professores/fgoulart/artigo_Struts.pdf


Veja se esse artigo te ajuda!!!!

Pergunte ao GOOGLE, ele é seu amigo!!!

Todas as pessoas inteligentes usam o Google.
[MSN]
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

Cara esse artigo é o que eu mais leio, hehehee

Mais é uma action para cada ação, teria como fazer tudo em uma action só?
[Email] [MSN]
kamikazeishida
JavaChild
[Avatar]

Membro desde: 26/04/2006 09:12:58
Mensagens: 140
Localização: Curitiba Pr
Offline

Teria sim, mas não aconselho.
pegando o parametro passado no struts-config.xml
chamado parameter



Pergunte ao GOOGLE, ele é seu amigo!!!

Todas as pessoas inteligentes usam o Google.
[MSN]
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

você acha melhor fazer tudo separado?

mas da mais serviço!!!!

Só existe estas duas formas?
[Email] [MSN]
kamikazeishida
JavaChild
[Avatar]

Membro desde: 26/04/2006 09:12:58
Mensagens: 140
Localização: Curitiba Pr
Offline

Agora que eu entendi o que vc ker.

Faz assim:

no struts-config.xml



JSP


javascript


o link ficaria assim



Pergunte ao GOOGLE, ele é seu amigo!!!

Todas as pessoas inteligentes usam o Google.
[MSN]
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

Agora sim você me entendeu, hehehe, valeu cara vou fazer aqui depois coloco a solução pro pessoal
[Email] [MSN]
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

cara fui testar o seu exemplo mais nao funcionou poderia ser mais objetivo!!!

meu jsp e esse

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

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

<html:html locale="true">
<head>
<bean:message key="css"/>
<title><bean:message key="titulo"/></title>
<html:base/>
</head>
<body>
<html:form action="clienteaction" focus="nome">
<html:hidden property="acao" />
<table border="0">
<tr>
<td><bean:message key="data_cadastro"/></td>
<td><label>
<html:text property="data_cadastro" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="nome"/></td>
<td><label>
<html:text property="nome" size="50" /><html:errors property="nome"/>
</label></td>
</tr>

<tr>
<td><bean:message key="data_nascimento"/></td>
<td><label>
<html:text property="data_nascimento" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="endereco"/></td>
<td><label>
<html:text property="endereco" size="50" /><html:errors property="endereco"/>
</label></td>
</tr>

<tr>
<td><bean:message key="bairro"/></td>
<td><label>
<html:text property="bairro" /><html:errors property="bairro"/>
</label></td>
</tr>

<tr>
<td><bean:message key="cep"/></td>
<td><label>
<html:text property="cep" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="cidade"/></td>
<td><label>
<html:text property="cidade" size="30" /><html:errors property="cidade"/>
</label></td>
</tr>

<tr>
<td><bean:message key="estado"/></td>
<td><label>
<html:text property="estado" size="5" />
</label></td>
</tr>

<tr>
<td><bean:message key="fone1"/></td>
<td><label>
<html:text property="fone1" size="30" /><html:errors property="fone1"/>
</label></td>
</tr>

<tr>
<td><bean:message key="fone2"/></td>
<td><label>
<html:text property="fone2" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="fone3"/></td>
<td><label>
<html:text property="fone3" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="cnpj"/></td>
<td><label>
<html:text property="cnpj" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="ie"/></td>
<td><label>
<html:text property="ie" size="30" />
</label></td>
</tr>

<tr>
<td><bean:message key="email"/></td>
<td><label>
<html:text property="email" size="50" />
</label></td>
</tr>

<tr>
<td><label>
<html:submit><bean:message key="gravar"/></html:submit>
</label></td>
</tr>
</table>
</html:form>
</body>
</html:html>

como eu poderia fazer uma consulta e listar meus dados aqui nesse JSP?
[Email] [MSN]
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

e essa é minha classe persistencia

package clientes.persistencia;

import clientes.bean.Cliente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.activation.DataSource;
import service.ServicePool;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;

/**
*
* @author Diogo
*/
public class Persistencia {

private static final String JNDINome = "jdbc/sicewebbd";

Connection con = null;
ResultSet rs = null;
PreparedStatement stmt = null;


public void desconecta(){
if (rs != null){
try{
rs.close();
}catch(SQLException e){

}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
}
}
}

public ArrayList listarCliente(Cliente cliente) throws SQLException{

try {
con = ServicePool.getConexao(JNDINome);
}catch (Exception e){
e.printStackTrace();
}

String sql = "SELECT * FROM clientes WHERE nome = ?";
ArrayList resultado = new ArrayList();
try{
stmt = con.prepareStatement(sql);
stmt.setObject(1, cliente.getData_cadastro());
stmt.setObject(2, cliente.getData_nascimento());
stmt.setObject(3, cliente.getEndereco());
stmt.setObject(4, cliente.getBairro());
stmt.setObject(5, cliente.getCep());
stmt.setObject(6, cliente.getCidade());
stmt.setObject(7, cliente.getEstado());
stmt.setObject(8, cliente.getFone1());
stmt.setObject(9, cliente.getFone2());
stmt.setObject(10, cliente.getFone3());
stmt.setObject(11, cliente.getCnpj());
stmt.setObject(12, cliente.getIe());
stmt.setObject(13, cliente.getEmail());
stmt.setObject(14, cliente.getNome());

resultado.add(cliente);
}
catch (SQLException e) {
throw e;
}
finally {
desconecta();
}
return resultado;
}

public void insertCliente(Cliente cliente) throws SQLException{

try {
con = ServicePool.getConexao(JNDINome);
} catch (Exception e) {
e.printStackTrace();
}
String sql = "INSERT INTO clientes (data_cadastro,nome,data_nascimento,endereco,bairro,cep,cidade," +
"estado,fone1,fone2,fone3,cnpj,ie,email) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

try{
stmt = con.prepareStatement(sql);
stmt.setObject(1, cliente.getData_cadastro());
stmt.setObject(2, cliente.getNome());
stmt.setObject(3, cliente.getData_nascimento());
stmt.setObject(4, cliente.getEndereco());
stmt.setObject(5, cliente.getBairro());
stmt.setObject(6, cliente.getCep());
stmt.setObject(7, cliente.getCidade());
stmt.setObject(8, cliente.getEstado());
stmt.setObject(9, cliente.getFone1());
stmt.setObject(10, cliente.getFone2());
stmt.setObject(11, cliente.getFone3());
stmt.setObject(12, cliente.getCnpj());
stmt.setObject(13, cliente.getIe());
stmt.setObject(14, cliente.getEmail());

stmt.executeUpdate();

}
catch (SQLException e) {
throw e;
}
finally {
desconecta();
}
}

public void alterarCliente(Cliente cliente) throws SQLException{
try {
con = ServicePool.getConexao(JNDINome);
} catch (Exception e) {
e.printStackTrace();
}
String sql = "UPDATE clientes set data_cadastro = ? ,data_nascimento = ? ," +
"endereco = ?,bairro = ?,cep = ? ,cidade = ?," +
"estado = ?,fone1 = ? ,fone2 = ?,fone3 = ?,cnpj = ? ,ie = ?,email = ? WHERE nome = ?";

try{
stmt = con.prepareStatement(sql);
stmt.setObject(1, cliente.getData_cadastro());
stmt.setObject(2, cliente.getData_nascimento());
stmt.setObject(3, cliente.getEndereco());
stmt.setObject(4, cliente.getBairro());
stmt.setObject(5, cliente.getCep());
stmt.setObject(6, cliente.getCidade());
stmt.setObject(7, cliente.getEstado());
stmt.setObject(8, cliente.getFone1());
stmt.setObject(9, cliente.getFone2());
stmt.setObject(10, cliente.getFone3());
stmt.setObject(11, cliente.getCnpj());
stmt.setObject(12, cliente.getIe());
stmt.setObject(13, cliente.getEmail());
stmt.setObject(14, cliente.getNome());

stmt.executeUpdate();

}
catch (SQLException e) {
throw e;
}
finally {
desconecta();
}
}

public void excluiCliente(String nome) throws SQLException{
try {
con = ServicePool.getConexao(JNDINome);
} catch (Exception e) {
e.printStackTrace();
}
String sql = "DELETE FROM clientes WHERE nome = ?";

try{
stmt = con.prepareStatement(sql);
stmt.setObject(1, nome);

stmt.executeUpdate();

}
catch (SQLException e) {
throw e;
}
finally {
desconecta();
}
}
}
[Email] [MSN]
raghyjose
What is classpath?

Membro desde: 20/05/2008 23:19:30
Mensagens: 8
Offline

ola nao sei se entendi... faço algo em struts... tem a entidade que gera tabela no banco de dados pois é em hibernate, tem o form... que é parecido com a entidade, só a declaração de variaveis, getters e setters... e também o action... no action vai todos os métodos... de alterar, etc...

só que geralmente o listar eu faço separado... aí vai os links para alterar e excluir após cada lista...

uma página cadastra, outra lista... acho que é a melhor forma... vc quer tuda na mesma... também estou precisando disto... e preciso por na sessão, pois quero pegar dados de duas tabelas e juntar em outras... monto um projeto que simula uma loja de carros, quero juntar clientes e carros, com vendas... ja fiz utilizando pesquisa por id, que da um retorno... mas preciso uma pesquisa por nome... e podem vir muitos retornos... entao empaquei... nisto aqui...


<a href="action.do?op=excluir" target="mainframe">excluir</a> <BR>
<a href="action.do?op=alterar" target="mainframe">excluir</a> <BR>


no action vc faz um if para cada op (operação )

if (op.equals("excluir)) {
retorno= metododeexcluir(mapping,form,request,response)



no jsp está assim... copiei agora...




<TD><a href="cliente.do?op=exc&idCliente=<bean:write name="cliente" property="idCliente"/>">excluir</a>-|-
<a href="cliente.do?op=selec&idCliente=<bean:write name="cliente" property="idCliente"/>">alterar</a>
</TD>


ele captura o id do cliente no caso... la tem que fazer uma pesquisa talvez...



nao sei se ajudo ?







<table border=2 bgcolor="#999999">
<TR bgcolor=white>
<TD colspan=12> <center> Lista de Clientes </center></td></tr>
<TR><TD><B>id</B></td>
<TD><B>nome</B></td>
<TD><B>rua</B></td><TD><B>complemento</B></td><TD><B>cidade</B></td>
<TD><B>estado</B></td>
<TD><B>cep</B></td><TD><B>fone</B></td>
<TD><B>rg</B></td>
<TD><B>cpf</B></td>
<TD><B>email</B></td>

<TD><B>manutencao</b></td></TR>
<logic:iterate id="cliente" name="clientes">
<TR>
<TD> <bean:write name="cliente" property="idCliente"/> </TD>
<TD> <bean:write name="cliente" property="nome"/> </TD>
<TD> <bean:write name="cliente" property="rua"/> </TD>
<TD> <bean:write name="cliente" property="complemento"/> </TD>
<TD> ${cliente.cidade.cidade} </TD>
<TD> ${cliente.estado.estado} </TD>
<TD> <bean:write name="cliente" property="cep"/> </TD>
<TD> <bean:write name="cliente" property="fone"/> </TD>
<TD> <bean:write name="cliente" property="rg"/> </TD>
<TD> <bean:write name="cliente" property="cpf"/> </TD>
<TD> <bean:write name="cliente" property="email"/> </TD>

<TD><a href="cliente.do?op=exc&idCliente=<bean:write name="cliente" property="idCliente"/>">excluir</a>-|-
<a href="cliente.do?op=selec&idCliente=<bean:write name="cliente" property="idCliente"/>">alterar</a>
</TD>
</tr>
</logic:iterate></table><br>
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

Galera desde ja agradeço novamente a ajuda de vcs, mas acho que não estou me expressando bem!!!!!!!!!!!

Eu quero fazer uma consulta no banco pelo nome e que ao me retornar os valores lance no mesmo form que uso para cadastrar, agora sim acho que vcs irão me ajudar, valeu galera
[Email] [MSN]
etrzan
HelloWorld

Membro desde: 21/05/2008 09:22:46
Mensagens: 11
Offline

Acredito q sei o q vc qr dizer.

Vou por um exemplo abaixo e daí vc pode ver se está correto o q eu interpretei.

Mas para começar, vc já ouviu falar em DispatchAction?

Bom, ela permite q vc faça um switch entre os ActionForwards.

Assim cm vc tbm pode usar um única jsp para poder fazer o tratamento de delete, insert e update.

Segue os códigos exemplos:

JSP alunos:



JSP acoesAluno:



ACTION AlunoAction:



STRUTS struts-config.xml


Bom, dessa forma vc consegue fazer os 3 passos em 1 jsp, 1 action e 1 formulário.

Espero ter ajudado.

Att,
diogoprosoft
JavaGuru
[Avatar]

Membro desde: 04/03/2008 16:54:23
Mensagens: 226
Offline

Muito obrigado por ter me ajudado vou dar uma olhada no codigo e tentar fazer parecido, quando conseguir vou colocar a solução aqui para o pessoal dar uma olhada, valeu mesmo
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team