Meu Bean não está com todos os valores setados

4 respostas
V

Mudei de container da Oracle para o Tomcat, e estou tendo alguns problemas desde então.

Todas as minhas telas acessam um atributo da sessão que é carregado quando o usuário se loga, este atributo representa a localidade do usuário conectado.

Eu exibo o valor desta session em um campo text do formulário na tela, esta tela tem vários outros campos onde o usuário entra com valores.

Até aí tudo bem, o problema ocorre quando o usuário tenta salvar estes dados, pois existe um atributo do Bean que não está com seu valor atribuído, que é justamente este campo do formulário que foi atribuído por uma session.

O bean que estou usando no meu JSP está com escopo de sessão, estou usando o padrão de nomenclatura da SUN, ou seja, os atributos que tenho no meu Bean tem os mesmos nomes dos campos do formulário.
Tem os métodos getters e setters para cada atributo.

Estou utilizando a tag useBean na minha tela JSP, que tem seus atributos setados quando clico no botão salvar da tela, ou seja, quando ocorre o submit nela e então, e então chamo o servlet que controla a página.

Todos os atributos do meu Bean estão com seus valores setados, menos o atributo que foi setado por uma session para um campo do formulário do JSP.

Estou usando a seguinte TAG no meu JSP:

<jsp:useBean id="OrdemBean" class="br.empresa.Ordem" scope="session" />
<jsp:setProperty name="OrdemBean" property="*" />

O que será que pode estar acontecendo, pois com o outro container este problema não ocorre.

:sad:

4 Respostas

M

Pode postar o código que faz isto? Pelo que entendi tu tens algo tipo isto num formulário:

<input type="text" name="foo" value="${sessionScope.algumValor}"/>

e quando submete pra outro jsp, ele nao esta setando o atributo “foo” do teu bean, é isto? Vamos ao código.

V

Aqui está o campo do formulário que recebe o valor:

<input type="hidden" size="5" name="uDesp_NumUnidadeDesp" maxlength="5" value="<%=session.getAttribute("unidade_logada")%>"/>

Linha onde utilizo a tag use Bean do JSP(está no começo da página JSP):

<jsp:useBean id="OrdemBean" class="br.empresa.Ordem" scope="session" /> 
<jsp:setProperty name="OrdemBean" property="*" />

Quando submeto o formulário eu mando para o servlet de controle da página:

Código do servlet:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    HttpSession session = request.getSession();
 
    Ordem ordemBean = new Ordem();
    
     ordemBean = (Ordem)session.getAttribute("OrdemBean");

etc...
}

Aqui está o código do Bean:

public class Ordem{


 private int uDesp_NumUnidadeDesp;

 public Ordem() {
  }

  public int getUDesp_NumUnidadeDesp() {
    return uDesp_NumUnidadeDesp;
  }

  public void setUDesp_NumUnidadeDesp(int uDesp_NumUnidadeDesp) {
    this.uDesp_NumUnidadeDesp = uDesp_NumUnidadeDesp;
  }
}
S

Desculpe, errei. :oops:
Não tinha reparado que o bean vinha da sessão.
Não sei qual o problema :confused:

R

Eu tive o mesmo problema, quase fiquei doido, porque foi em um dia de apresentação. No OC4J e no Oracle Application Server tudo funcionava perfeitamente, fiz um deploy para trabalhar com o tomcat 5.5… péssima idéia, nada funcionava… o valores eram todos NULL desesperador

Mas, também não obtive uma resposta concreta para isso, o mais engraçado é que antes do OC4J eu já trabalhava com o tomcat e isso funcionava perfeitamente…

Não ajudei em nada né… hehehe

Tive alguns problemas sobre submeter o Bean direto para um Servlet, os valores não são preenchidos, o que concluiu-se é que devo passar pelo JSP e depois forwad para o Servlet, só assim o bean será preenchido, veja:

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=24028&highlight=bean

espero que ajude em alguma coisa.

abraço![/url][/b]

Criado 12 de agosto de 2005
Ultima resposta 14 de ago. de 2005
Respostas 4
Participantes 4