Ola me deêm uma luz…qualquer ajuda e bem vinda…
Eu tenho um Bean chamado PedidosBean.java que possui um instância de uma classe chamada medicamentos.java.
public class PedidosBean extends Pedidos{
…
cidim.Medicamentos medPed = new cidim.Medicamentos();
Possuou tbm uma página jsp , chamada "RealizaPedido.jsp" que possue uma instância do Bean Pedidosbean.java com id = "Pedidos".
<jsp:useBean id="Pedido" scope="session" class="cidim.PedidosBean" />
–>Quando tento chamar um método da classe "Medicamentos" na página jsp como a seguir:
Pedido.setNomeMed(request.getParameter("nome_med"));
ele não reconhece os metodos da classe medicamentos, só os proprios da classe "Pedidos" que PedidosBean está extendendo…
porque não consigo ver as propriedades e os metodos da classe medicamentos???
já se eu fizer:
<jsp:useBean id="Med" scope="session" class="cidim.Medicamentos" />
daí eu consigo acessar normalmente…mas gostaria de saber porque nao consigo acessar diretamente só instanciando em minha página jsp o PedidosBean ???
------------------------------------------------------------------
E se eu acabasse por fazer da segunda forma , onde eu conseguiria enxergar os metodos e propriedades q eu gostaria…
<jsp:useBean id="Med" scope="session" class="cidim.Medicamentos" />
quando eu fosse executar um metodo contido dentro do PedidosBean , que possuisse por exemplo : "getNomeMed()";
ele iria pegar o nome do medicamento , mesmo tendo uma instancia em uma página jsp e outra em PedidosBean ???ou seja com a instancia feita na página jsp , e executando um metodo do PedidosBean , que contesse propriedades da classe medicamentos , o valor nao seria nulo??? ele iria pegar os valores???
Desculpe se ficou confuso , tentei ser bem claro…
Obrigado pela ajuda de vcs…
------------------------------------------
eis os códigos relativos:
------------------------------------------
Pedido.jsp
<jsp:useBean id="Pedido" scope="session" class="cidim.PedidosBean" />
<%
Pedido.setCod_ped(request.getParameter("medicamento"));
Pedido. queria que aparecesse aqui os set´s da classe medicamentos…
…
public class PedidosBean extends Pedidos{
//Declarações Públicas - Membros da Classes-------------------------------------
cidim.Medicamentos medPed = new cidim.Medicamentos();
…
um metodo do Bean :
public boolean Grava_Pedido(String dta){
try{
String SQL_gravaped="Insert into pedido values ("+ this.getCod_ped()+","+this.assocPed.getCod_assoc()+
",´"+this.getData_ped()+"´,´"+this.getHora_ped()+"´,´"+this.getStatus_ped()+
"´,"+this.fornPed.getCod_forn()+","+this.funcPed.getCod_func()+
",´"+this.getTot_ped()+"´);";
---------------> Alguns destas propriedades sao da classe Medicamentos…e eu precisaria utilizar os Set´s deles para colocar valores nas variaveis …para poder utilizar os GEt´s aqui…
int Grava_Ped=ST_gravaped.executeUpdate("");
return(true);
}catch(Exception e){
this.setInfo("Erro na gravação do Pedido em : Grava_Pedido()"+e.getMessage()+e.toString());
return(false);
}
}
-------------------
Muito Obrigado
Felipe!
Classe + JavaBen
P
3 Respostas
G
Olá!
para acessar os dados do objeto Medicamentos em seu pedido, declare
medPed public.
public cidim.Medicamentos medPed = new cidim.Medicamentos();
–
Para setar os dados, use
Pedido.medPed.setNomeMed(request.getParameter("nome_med"));
Existem outras formas de solucionar o problema, mas essa eh a mais simples…
[]s
P
putz cara se eu lhe contar q eu pensei nisso , mas achei que era errado fazer assim…
valeu vou tentar…qualquer coisa eu retorno…
Obrigado!
B
A idéia é basicamente essa mesmo, porém não é uma boa prática de programação deixar suas variáveis public. Para um bom encapsulamente, elas devem ser private e deve haver um método para get e set
Então você criaria um método assim:
public cidim.Medicamentos getMedPed() {
return medPed;
}
e aí faria Pedido.getMedPed().setNomeMed(request.getParameter("nome_med"));
Criado 4 de março de 2003
Ultima resposta 4 de mar. de 2003
Respostas 3
Participantes 3