Receber um javabeans em um servlet

9 respostas
A

Senhores,

Tenho um jsp com um javabeans e este jsp chama um servlet que tem que receber este javabeans.

Alguém pode me dizer como eu envio este javabeans via request para o servlet e como eu o recebo no servlet?

Abraços,

Augusto

9 Respostas

jgbt

Cara,
Se o seu java bean tem escopo de session ou request é so pega-lo no servlet como se estivesse em um jsp.

[]'s

A

jgbt,

tentei seguir o que você falou, mas nào deu certo. Você pode me enviar um exemplo?

Abraços,

maresp

no jsp:

<jsp:useBean id="myBean" class="package.MyBean" scope="session"/>

no servlet:

HttpSession session = request.getSession();
MyBean myBean = (MyBean) session.getAttribute("myBean");
A

Amigos,

Implementei o código fornecido pelo maresp e funcionou perfeitamente.

Obrigado maresp !!

O problema é que eu tenho que passar o bean via request, mas não estou conseguindo.

Coloquei no meu servlet o seguinte código:

banco.TesteA TesteBean = (banco.TesteA)req.getParameter(“TesteBean”);

Mas ao compilar, deu o erro:

Testea2.java:17: inconvertible types
found : java.lang.String
required: banco.TesteA
banco.TesteA TesteBean = (banco.TesteA)req.getParameter(“TesteBean”);
^

Alguém pode me mostrar como posso receber o bean no servlet via request?

Abraços,

Augusto Santos

Rafael_Steil

Voce nao pode passar objetos pelo request.

Voce tera que passar os dados do teu bean, um a um, e entao recriar ele, item por item…

Em outras palavras, se vc tem um bean

class MeuBean {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

e digamos que o id do teu bean no JSP seja “meuBean”, voce nao pode fazer

...
<form>
...
<input type="hidden" name="bean" value="<%= meuBean%>">
...
</form>
...

Voce nao consegue / nao pode passar o objeto… voce teria que passar o nome ( string ), entao no teu servlet dar um getParameter() para pegar o nome, criar uma instancia do MeuBean e entao setar o nome que veio do request.

Rafael

maresp

“Rafael Steil”:
Voce nao pode passar objetos pelo request.

?!?! Como não consegue???

Augusto, é q vc estava usando o método errado… getParameter(String) retorna os valores das tuas tags html. Para objetos utilize o mesmo método usado com session, ou seja, getAttribute(String).

Rafael_Steil

Nao consegue…

Ou eu que nao RTFM direito… mas se foi esse o caso, gostaria de saber como vc coloca um objeto em um request e pega esse mesmo objeto em outro request, sem usar a session.

Rafael

maresp

no jsp vc cria uma instância de MyBean no scopo request:

<jsp:useBean id="myBean" class="package.MyBean" scope="request"/>

no servlet vc pega o bean instanciado através do método getAttribute(String):

public void doGet(HttpServletRequest request, HttpServletResponse response) {
   MyBean myBean = (MyBean) request.getAttribute("myBean");
   ...
}

nesta sequencia, o request em que foi criado o nosso bean não é o mesmo que o servlet vai receber? Acho que estou patinando aqui então…

maresp

deixa eu me retratar publicamente… hehe

realmente não tem como, pq os objetos requests são diferentes… valeu o toque Rafael.

Criado 6 de fevereiro de 2004
Ultima resposta 9 de fev. de 2004
Respostas 9
Participantes 4