Como chamar uma Action dentro de uma classe java?

5 respostas
henriquedamota

Olá pessoal tudo bem ?

estou com um problema... não consigo chamar uma action dentro de uma classe... essa action iria redefinir meu jsp depois...

eu fiz um teste aqui totalmente absurdo da minha cabeça... olha soh...

RefazTelaAction tela = new RefazTelaAction();
		HttpServletRequest request = null;
		ActionForm form = null;
		ActionMapping map = null;
		HttpServletResponse response = null;
		
		Idade idade = new Idade();
		List listaatributos = new ArrayList();
		listaatributos = bicho.getListaatributos();
		
		idade = (Idade) listaatributos.get(0);
		
		
		request.setAttribute("idade", idade);
		
		try {
			tela.execute(map, form, request, response);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

Alguem ai tem alguma ideia pra me ajudar ? alguum exemplo ?

Flw ai... Mto Obrigadooo !

5 Respostas

danieldestro

Struts?

Já pensou em dar um return de um mapeamento para esta Action?

henriquedamota

Ola… entaooo … mas a classe que eu estou querendo chamar a action Nao é uma action tb…

senao daria apenas o mapeamento correto e pronto…

Alguma sugestao ai !?

danieldestro

Sua classe é o que então, um Servlet? Se for, faça um forward para o seu “.do”.

Senão, qual seria a razão de uma classe não-web chamar ou executar uma Action?
Para isso existem os Delegates da vida, pra você chamar de outros pontos (Action, Servlet, classes normais etc).

henriquedamota

Opa… calma cara… tow aprendendo ! hehehe…

Entao… a razao de eu querer que uma classe chame uma action é o seguinte:

Eu instancio uma classe Timer do java… e essa classe sempre vai ter q aplicar uma regra e depois chamar a action pra atualizar a tela conforme os parametros mudados…

É mais ou menos isso o meu caso aqui…

Esses delegates que vc me falou… como funcionam ? ce tem algum exemplo ai ?

flw cara, obrigado ai da força!

danieldestro

Pense na Action como uma "cola" entre a sua página web e sua lógica de negócio. É ela quem vai pegar as informações vindas da tela e repassar e para a classe que contém a lógica de negócio e executá-la. Portanto, sua Action NÃO deveria conter inteligência de negócio, mas sim uma outra classe.

Num modelo dividido em camadas lógicas, em geral têm-se:

JSP --> Action --> [Business] Delegate --> Classe de Negócio --> DAO

Cada camada desta é implementada por uma classe diferente e cada uma possui uma semântica diferente. Procure ler sobre Design Patterns e os padrões acima.

O ideal é que você coloque a lógica de negócio em uma classe separada, assim você pode chamar de diferentes modos.

Criado 24 de setembro de 2007
Ultima resposta 25 de set. de 2007
Respostas 5
Participantes 2