Tenho um bean chamado Planta que possui um método que criei para teste com o jstl
public int numero()
{
return 10;
}
No jsp chamo o usebean <jsp:useBean id=“painel” class=“bean.Painel” /> e quando chamo : ${painel} , me exibe o endereçamento de memória do bean. Ok.
O problema é quando quero chamar o método ‘numero’ desse bean… Chamo assim:
${painel.numero}
e já chamei também usando o c:out, assim:
<c:out value="${painel.numero}" />
Está me dando um ELException assim: Unable to find a value for “numero” in object of class “bean.Painel” using operator “.”
Claro q este método que retorna o numero é um teste bem simples que criei… pq estava tentando chamar um método de verdade e estava me dando esse erro… aí tentei com esse método simples e o erro persiste. Alguem pode ajudar?
Amigo
cuidado se estiver utilizando jsf com jstl, pois jsf é compilado em tempo de execução e jstl em tempo de compilação.
Pois pode ser por isso que não esta conseguindo pegar os valores que vc quer.
diegorc,
O detalhe do JSF realmente daria problema, mas acho que não é o caso, este exemplo é só JSP mesmo.
Para o autor da pergunta:
- Resolva o problema renomeando o método para getNumero()
- Pesquise sobre o padrão JavaBeans para entender porque vc vez isso (e porque funcionou!)
Gomesrod, realmente é isso…
faltava o prefixo get antes do nome do método… que estranho isso!
Estava na metade de um projeto fazendo em scriptless e a partir de agora vou atualizar com JSTL, vou ter que alterar o nome dos meus métodos todos com get antes do nome só pro JSTL reconhecer… que bizarro.
Mas valeu brother!!! You gained a gold star! * 