JSF + Managed Bean + Setando Valor em Outro Bean

6 respostas
J

Bom dia Pessoal

Preciso saber a seguinte informação!

Eu tenho um usuário na sessão… que é o meu usuário!!!
E esse usuário quando vai fazer uma operação: digamos que cadastrar uma empresa

Eu preciso que nesse momento que ele clique em cadastrar empresa…
seja carregado os campos e o valor do e-mail desse usuário preencha 1 ou + campos!

o usuário da sessão.!

se alguém souber como fazer isso e puder me dar uma mão… agradeço…!!

Valeu ai

6 Respostas

R

fera, ficou meio estranha sua pergunta… pelo que entendi vc quer pegar valores do managed bean usuario e usar esses valores no managed bean de empresa, é isso ?

para fazer isso:

FacesContext context = FacesContext.getCurrentInstance();
		UsuarioMB usuarioMB = (UsuarioMB) context.getELContext().getELResolver().getValue(context.getELContext(),
				null, "usuarioMB");

assim vc pode utilizar toda a interface publica de usuarioMB

qq coisa postae

abrassss

M

Eu costumo fazer colocando o managedBean que vou acessar como propriedade do outro. acho que fica mais organizado.

Um exemplo de como ficaria o faces-config.xml

Neste caso os managedBean IndexManagedBean e ExibeManagedBean seta e pega valor do campo pessoa do managedBean PessoaManagedBean.

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    <managed-bean>
        <managed-bean-name>IndexManagedBean</managed-bean-name>
        <managed-bean-class>managedbean.IndexManagedBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>pessoa</property-name>
            <value>#{PessoaManagedBean.pessoa}</value>
        </managed-property>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>ExibeManagedBean</managed-bean-name>
        <managed-bean-class>managedbean.ExibeManagedBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>pessoa</property-name>
            <value>#{PessoaManagedBean.pessoa}</value>
        </managed-property>x
    </managed-bean>
    <managed-bean>
        <managed-bean-name>PessoaManagedBean</managed-bean-name>
        <managed-bean-class>managedbean.PessoaManagedBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
        <navigation-case>
            <from-action>#{ExibeManagedBean.DoExibePage}</from-action>
            <from-outcome>sucesso</from-outcome>
            <to-view-id>/exibe.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>

Nos managedBeans IndexManagedBean e ExibeManagedBean só tenho que declarar o campo e fazer os get e set

private Pessoa pessoa;

//get e sets

Se quiser te mando o código fonte deste cara que fiz para explica isso para um amigo meu neste fds ta bem simples e no netbeans 6.7.

Abraço,

Marcelo Gomes

J

O que eu queria mesmo é assim:

Eu tenho um usuário na sessão…

Dai tem 1 + campos que tem que ser preenchido com um usuário qualquer que tem no banco ou ele mesmo

mas já queria que viesse carregado como padrão o e-mail dele!

E dai assim ficaria um os 3 input aparecendo o email dele

e dai se ele quisesse podia alterar os e-mails para e-mails de outros usuarios…

mas que dai ele preenche o e-mail e valida se esse usuario é existente tem… Mas queria saber como que posso ja trazer preenchido esses campos com o e-mail do proprio usuario

M

Da forma que te postei vc faz isso!!!

M

Pessoal,

Apenas para não dar dor de cabeça para quem for usar este exemplo, na linha 25 do faces-confi.xml acabei digitando um “x” sem querer…

x

o correto é

Abraço,

Marcelo Gomes

J

Problema resolvido com tutorial do marcelo!

Valeu cara

Criado 14 de setembro de 2009
Ultima resposta 14 de set. de 2009
Respostas 6
Participantes 3