Struts Projeto Iniciante

4 respostas
R

Bom dia.

Pessoal estou desenvolvendo um projeto em struts como um cadastro simples exemplo id, nome, endereço, e está funcionando ele cadastra, lista e remove normalmente so que tenho para cada função um form e um action(CadastraAction, ListaAction, RemoveAction, CadastraForm, RemoveForm) e a grande duvida é a seguine gostaria de saber se tem como fazer o cadastro o lista e a remoção em um Form e um Action só. E também gostaria de fazer um unico formulario e colocar as ações de cadastro, lista e remoção em botões no formulario e não estou conseguindo.

Se alguem puder me ajudar eu desde de já agradeço.

4 Respostas

rod

Tem um post no meu blog que escrevi faz um tempo ja sobre Struts 1.x
Deve te ajudar!

http://www.rodrigolazoti.com.br/?p=31

:wink:

R

Boa Tarde.

Rodrigo obrigado pela a dica mais ainda não ajudou vou verificar certinho como funciona DynaActionForm e o DispatchAction.

Mais gostaria de saber se algum pode me ajudar com os problemas acima, o problema de juntar os actions eu estou quase conseguindo mais não consigo colocar as ações nos botões do formulario, exemplo quando clicar em inserir estou usando o submit insere normalmente e quando for deletar ou listar como fazer???

Estou aguardando ajuda, muito obrigado desde de já agradeço.

mInEiRo

Boa tarde Renato,

Uma ideia que vc possa fazer é o seguinte.

Nos 3 botões, utilize BUTTON.
Adiciona um campo HIDDEN com o nome ex: botao

vc cria uma função javascript parecida com essa:

function enviar( botao ){
      // estou adicionando o valor recebido ao botao oculto
      document.getElementById("botao").value = botao;
      document.submit(); // aqui tem que ver direitinho, nao me lembro de cabeça, mas cada navegador tem um modo diferente de enviar.
  }

no evento dos botões vc adiciona

<button name="" id="" onclick="enviar('INCLUIR')">

para isso funcionar, na action vc vai sempre enviar para o mesmo MÉTODO.
dentro do medodo vc valida qual o botão foi adicionado, assim vc redireciona para incluir, alterar, excluir ou seila o que.

entendeu?

Não é a melhor forma mas funciona.

flw

R

Boa Tarde

Pessoal estou usando aplicações simples para cadastrar, remover e listar vou colocar o codigo para vocês verem e queria usar os botões sem javascript. Segue meus actions e meu jsp queria juntar os actions e colocar as ações nos botões, o de incluir já está respondendo agora falta o remover e o listar e colocar todos os actions juntos.
Se alguem puder me ajudar agradeço

/**
 * 
 */
package br.com.caelum.struts.action;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.jasper.runtime.ProtectedFunctionMapper;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.caelum.jdbc.dao.ContatoDao;
import br.com.caelum.jdbc.dao.EscritorioDao;
import br.com.caelum.struts.form.CadEscritorioForm;
import br.com.caleum.jdbc.modelo.Contato;
import br.com.caleum.jdbc.modelo.Escritorio;

/**
 * 
 *
 */
public class CadEscritorioAction extends Action {
	
	
	

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		
		
		
		System.out.println("fazendo inclusão no formulario");
		//formulario do cliente
		CadEscritorioForm formulario = (CadEscritorioForm) form;
		//Acesso ao bean
		Escritorio escritorio = formulario.getEscritorio();
		
		System.out.println(escritorio.getBtincluir());
		
		//acesso ao banco
		EscritorioDao dao = new EscritorioDao();
		dao.adiciona(escritorio);
		
		return mapping.findForward("ok");
		
		
	}
	
	


}
/**
 * 
 */
package br.com.caelum.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.caelum.jdbc.dao.EscritorioDao;
import br.com.caelum.struts.form.CadEscritorioForm;
import br.com.caleum.jdbc.modelo.Escritorio;

/**
 * 
 *
 */
public class RemoverCadEscritorioAction extends Action{
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		
		
		
		//formulario do cliente
		CadEscritorioForm formulario = (CadEscritorioForm) form;
		//Acesso ao bean
		Escritorio escritorio = formulario.getEscritorio();
		//acesso ao banco
		
		System.out.println(escritorio.getBtremover());
			
		EscritorioDao dao = new EscritorioDao();
		dao.excluir(escritorio);
		
		
		return mapping.findForward("ok");
	}

}
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

<%@page import="br.com.caleum.jdbc.modelo.Escritorio"%><html>
<html:html>
	<head>
		<title>Sistema de teste Struts</title>
	</head>
	
	<html:errors/>
	
	<html:form action="/cadEscritorio" focus="escritorio.codigo">
	<table>
		<tr>
			<td width="9%">Codigo:</td>
			<td width="19%">Nome Empresarial:</td>
			<td width="72%">Logradouro:</td>
			
		</tr>
		<tr>
			<td><html:text property="escritorio.codigo"/></td>
			<td><html:text property="escritorio.nomeEmpresarial"/></td>
			<td><html:text property="escritorio.logradouro"/></td>
		</tr>
		
		
				
		<tr>
			<td><input type="submit" name="Btincluir" value="Incluir"><td>
			<td><input type="submit" name="Btremover" value="Remover"></td>
			
              
			
		</tr>
		</table>
		</html:form>
		
				
</html:html>
Criado 13 de julho de 2009
Ultima resposta 14 de jul. de 2009
Respostas 4
Participantes 3