Duvida Iniciante em J2EE

Ola pessoal…

to saindo do ambiente desktop e indo pro ambiente web…

entao desculpe se a duvida parece besta…

e o seguinte: eu criei aqui uma classe manager pra gerenciar e exibir uns relatorios em .pdf, com jasper reports (fiz um exemplo bem simples)… a minha duvida e a seguinte: como eu xamo essa classe a partir de um evento de botao do tipo “exibir relatorio” q ta no meu jsp? pq pelo q andei lendo nao tem como eu invocar um metodo java a partir de javascript… entao nao daria pra fazer nada no “onclick” do botao…

eu teria q dar submit e tratar essa ação?

vlw

Sim, vc vai ter que submeter a página e tratar a ação do usuário.

Ou voce submete o formulário(caso voce precise que o usuario digite alguma informação) se nao simplismente coloca um link para seu servlet.
(creio q a classe a q vc se refere seja um servlet)

bom, ele nao vai “digitar” exatamente mas vai marcar alguns checkbox, do q ele quer ver ou nao no relatorio…

ou seja, vou te q submeter o form de qqer jeito certo?

[quote=fabiocsi]bom, ele nao vai “digitar” exatamente mas vai marcar alguns checkbox, do q ele quer ver ou nao no relatorio…

ou seja, vou te q submeter o form de qqer jeito certo?[/quote]
Sim

certo.

So mais uma pergunta cara, pq to comecando mesmo nisso…

atualmente eu trato essa acao com codigo java dentro da propria JSP…

tem como eu separar esse codigo, tira-lo da jsp?
queria deixar so html mesmo no jsp (ou o maximo possivel)…

pode me dar um exemplo basicao ae (tipo um helloword) de como eu faria isso?

[quote=fabiocsi]certo.

So mais uma pergunta cara, pq to comecando mesmo nisso…

atualmente eu trato essa acao com codigo java dentro da propria JSP…

tem como eu separar esse codigo, tira-lo da jsp?
queria deixar so html mesmo no jsp (ou o maximo possivel)…

pode me dar um exemplo basicao ae (tipo um helloword) de como eu faria isso? [/quote]

Sim, é possível usando-se uma técnica extensamente aproveitada nas JSP’s e outros: os JavaBeans. Vou mostrar um exemplo bem simples de… HelloWorld!

Um JavaBean segue principalmente umas regras simples: ele deve possuir um construtor SEM argumentos. Deve possuir getters e setters para todos os campos necessários.

Vamos criar um bean:

public class HelloWorldBean
  {
   private String message;

   public HelloWorldBean()
     { this.message = "Bem-vindo!"; }

   public String getMessage()
     { return this.message; }
  }

Aí temos um Bean que nada mais é do que uma classe com um construtor sem argumentos e um método getter.

Para usar esse Bean na JSP SEM usar código Java explícito, podemos usar o sufixo useBean da JSP, da seguinte forma:

<jsp:useBean id="myBean" scope="page" class="br.package.HelloWorldBean"/>

Podemos chamar o método getMessage() do Bean e imprimir isso na tela das seguintes formas:

– usando scriptlet

<%= myBean.getMessage() %>

– ou usando JSTL // o recomendável

${myBean.message}

A página completa ficaria mais ou menos assim:

<%@ page language="java" %>

<jsp:useBean id="myBean" scope="page" class="br.package.HelloWorldBean"/>

${myBean.message}

Pronto! Seu primeiro HelloWorld SEM scriptlet*! hehehe

Cara, ressalto o fato de que o que expus acima é algo “meramente ilustrativo”, ou seja, é um exemplo supramente superficial sobre como implementar um JavaBean útil na sua página. Há vários tópicos a se ater, como por exemplo: implementação do Bean, estipulação do seu escopo, class ou type, scriptlet ou JSTL, como a JSTL faz o call aos getters; são muitas coisas “variáveis” nisso tudo. Pesquise bastante pela internet que você pode encontrar muito material.

*scriptlet é como se chamam os trechos de puro código Java nas páginas JSP (que, por sinal, é uma má prática de desenvolvimento).

legal… boa aula deveriam existir artigos assim aqui =)

mas Yvi… tudo q vc falou eu ja faço… eu tenho os meus beans separados, uso eles com “useBean” etc…

mas de qqer jeito eu nao vou ter q usar codigo <% %> pra tratar a ação na JSP? de qqer jeito nao vo te q fazer algo do tipo:

<%

 myBean.setPropertie( request.getParameter( "parametro" );

%>

acho q eu estava viajando um poco na maionese e axando q tinha como deixar SO html mesmo… hehehe

vou explicar o pq disso Yvi… mano eu so muito newba em EE mesmo… O q ta sendo um pe no saco pra mim e na hora de testar as alterações q faço no html… eu to atualmente republicando ela no glassfish pra testar e demora muuuuuito ficar republicando toda hora q altera interface e eu tenho CERTEZA ABSOLUTA que tem uma maneira mais facil de testar essas alterações sem ter q fica dando republish toda hora…

me socorre ai mano me diz o caminho q devo trilhar…

thx

cara o seguinte se vc não quer um scriplet no seu jsp, use SERVLET’s, eh como se fosse um servidor da sua aplicaçao, ele recebe uma requisiçao executa alguma coisa no seu caso pro exemplo criaria os pdf’s e devolve uma resposta, que pode ser uma outra jsp que abre o seu pdf.

cara eu tbm sou novo entao a possibilidade de eu ter falado alguma bobaguem pode ser alta, mais pelo que sei eh isso mesmo.

Pra isso existem os modos DEBUG nas ferramentas de desenvolvimento como o Eclipse, Netbeans etc :wink: