Jsf Pegar Valores Do Managed Bean

Caros colegas! Sou novato no JSF, bom o problema é o seguinte: Tenho um Bean e Uma classe DAO, e a interface com JSF, configurei meu managed Bean, até ai tudo OK! Tá funcionando. Minha dúvida é: Quando eu configuro: teste
mostrar
session, o framework automaticamente instancia um objeto da classe mostrar que passa a ser atendido pelo nick teste. Eu quero pegar os métodos, propriedades deste objeto através de uma classe específica. Tentei pegar a instância desta forma: FacesContext facesContext = FacesContext.getCurrentInstance(), que representa minha instância atual, mas e pra mim localizar o objeto (teste) pra ser manipulado nesta classe via código, como fasso?

Preciso muito fazer isto!!! Alguém pode dar uma dica!

Desde já agradeço!

essa caixa alta no título é considerado um desrespeito nesse e em qualquer outro fórum, ranca isso!!!

Tem duas maneiras:

ELResolver:

FacesContext context = FacesContext.getCurrentInstance(); ELResolver resolver = context.getApplication().getELResolver(); FooManagedBean fooManagedBean = (FooManagedBean) resolver.getValue(context.getELContext(), null, "fooManagedBean");

ou por injeção de dependencia, coforme ja mostei aqui:

http://www.guj.com.br/posts/list/108169.java#583500

use a busca do fórum que vai achar bastante coisa.

Peço desculpas à comunidade pela caixa alta! Não sabia mesmo!

Com relação à caixa alta, estou visualizando normal, não sei se o navegador do nosso amigo tá com problemas ou é o meu.
Mas vamos ao problema.
Quando você declara o Manage Bean no faces-config ele cria uma instancia do seu bean para que você possa usá-la vinculá-la no seu código da página jsp, assim:

No faces-config.xml

<managed-bean-name>teste</managed-bean-name> 
<managed-bean-class>pacote.Classe</managed-bean-class> 
<managed-bean-scope>session</managed-bean-scope>

a partir daí você pode vincular as propriedades dos seus objetos (botões, caixas de texto, etc) das suas páginas usando a seguinte notação: #{apelidodobean.metodo_ou_atributo}

na sua página JSP:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<body>
<f:view>
<h:form>
<center><h2> Sua página </h2></center>
<br>
Digite o nome:
<h:inputText id="nome" value="#{teste.atributoDaClasse}"/>
<h:commandButton value="OK" action="#{teste.umMetodoDaClasse}"/>
</h:form>
<br>
</f:view>
</body>
</html>

Agora é só criar os metodos adequados para manipular os atributos e chamá-los internamente ou vinculando à propriedade action de algum componente de ação (botão, link, etc).

[quote=bobmoe]

FacesContext context = FacesContext.getCurrentInstance(); ELResolver resolver = context.getApplication().getELResolver(); FooManagedBean fooManagedBean = (FooManagedBean) resolver.getValue(context.getELContext(), null, "fooManagedBean");[/quote]

Cara.
Não tenho nada com o assunto, mas tive que registrar meu agradecimento aqui.
Essas três linhas salvaram minha vida (tá, um pouco menos).
:wink:

Então, gostaria de contribuir com a minha classe, que poderá vir-lhes a ser muito útil.

[code]package util;

import javax.el.ELResolver;
import javax.faces.context.FacesContext;

public abstract class Util {
public static Object pegaManagedBean(String nomeNoXML)
{
FacesContext context = FacesContext.getCurrentInstance();
ELResolver resolver = context.getApplication().getELResolver();
return resolver.getValue(context.getELContext(), null, nomeNoXML);
}
}[/code]

aí é soh usar assim:

PostagemController pc = (PostagemController)Util.pegaManagedBean("Postagem"); Postagem postagem = (Postagem) pc.getPostagem();

Abraços e obrigadão.

Diego Stiehl

Já está um pouco antigo esse post, mas será que adianta perguntar aqui como fazer isso ao contrário? Digo, como atribuir um valor para um objeto de um bean em sessão?

Fiz usando “setValue()”, assim:

FacesContext context = FacesContext.getCurrentInstance(); ELResolver resolver = context.getApplication().getELResolver(); resolver.setValue(context.getELContext(), null, NomeNoXML, objeto);Mas não funciona…

Alguém pode me ajudar com isso?
Valeu!

eu faco assim

Cliente cliente = new Cliente();
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("cliente", cliente);

depois pra pegar

Cliente cliente;
cliente = (Cliente)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("cliente");

Ao inves do getSessionMap voce pode usar o getRequestMap tbm caso use request.

Ola pessoal

Estou com um problema ao exibir as imagens que estão no banco de dados na minha pagina JSF.
Como eu tenho um catagalo de produto, eu listo todas as imagens do banco e uso uma servlet para renderiza-las na minha pagina .
so que de vez em quando a imagem nao aparecer, por exemplo se tenho uma lista com 10 imagens 6 aparem e as outras nao.
Debuguei o codigo e percebi que quando tento chamar o metodo getApplication().getELResolver().getValue(context.getELContext(), null, nomeBean) do FacesContext, de vez em quando ele da NullPointerException o estranho é que estou passando todos os paramettros.

Alguem ja teve um problema parecido ???

Obrigado pela ajuda.