Fala galera, blz??
Seguinte, to com uma baita dificuldade pra conseguir pegar um objeto de um bean em outro bean!
Tenho os seguintes beans:
@Name( "cotacaoCotizadorBean" )
@Scope( ScopeType.CONVERSATION )
public class CotacaoCotizadorBean extends BaseBean implements Serializable
private VersaoCotacaoCotizador vCota ;
public String cmdAvancar() {
try {
fgMostraTabSubgrupo = true ;
fgMostraTabCotacoes = false ;
//cotacao.setCdCotacao( 45872L );
cotacao.setPlanoCotacao( planoService.recuperarPorId( cotacao.getPlanoCotacao( ).getId( ))) ;
if( tipoSeguro )
{
cotacao.setTipoSeguro( "N" ) ;
}else
{
cotacao.setTipoSeguro( "T" ) ;
}
cotacao.setCorretorCotacao( corretorSelecionado ) ;
cotacao.setCepEstipulante( CEP.toString( ) ) ;
if( cosseguro )
{
cotacao.setIcCosseguro( "S" ) ;
}else
{
cotacao.setIcCosseguro( "N" ) ;
}
if( excedente )
{
cotacao.setIcExcedenteTecnico( "S" ) ;
}else
{
cotacao.setIcExcedenteTecnico( "N" ) ;
}
cotacao.setCdRamoAtividadeEstipulante( "T1" ) ;
cotacao.setCanalOrigem( canalOrigem ) ;
//cotacaoCotizadorService.salvar( cotacao, usuarioLogado ) ;
VersaoCorretagemCotizador vCorr = new VersaoCorretagemCotizador( ) ;
vCorr.setTsVersao( Calendar.getInstance( ).getTime( ) ) ;
//versaoCorretagemService.salvar( vCorr, usuarioLogado ) ;
VersaoCadastralCotizador vCad = new VersaoCadastralCotizador( );
vCad.setDtVersao( Calendar.getInstance( ).getTime( ) ) ;
//versaoCadastralService.salvar( vCad, usuarioLogado ) ;
VersaoComercialCotizador vCom = new VersaoComercialCotizador ( ) ;
vCom.setTsVersao( Calendar.getInstance( ).getTime( ) ) ;
vCom.setVersaoCadastral( vCad ) ;
vCom.setVersaoCorretagem( vCorr ) ;
//versaoComercialService.salvar( vCom, usuarioLogado ) ;
VersaoTecnicaCotizador vTec = new VersaoTecnicaCotizador( ) ;
vTec.setTsVersao( Calendar.getInstance( ).getTime( ) ) ;
//versaoTecnicaService.salvar( vTec, usuarioLogado ) ;
vCota = new VersaoCotacaoCotizador( ) ;
vCota.setTsVersao( Calendar.getInstance( ).getTime( ) ) ;
vCota.setVersaoComercial( vCom ) ;
vCota.setVersaoTecnica( vTec ) ;
vCota.setCotacao( cotacao ) ;
//versaoCotacaoService.salvar( vCota, usuarioLogado ) ;
//Eu consegui fazer dessa maneira, mas sei q deve dar pra fazer de uma forma menos onerosa
HttpSession session = (HttpSession)FacesContext.getCurrentInstance( ).getExternalContext( ).getSession( false ) ;
session.setAttribute( "vCadastral", vCad);
setCurrentTabSheet(TAB_SUBGRUPO);
return PAGE_COTACAO_DADOS_CADASTRAIS;
} catch (MapfreValidacaoException v) {
facesMessages.addFromResourceBundle(Severity.ERROR, v.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return null;
}
@Name( "cotacaoTabSubgrupoBean" )
@Scope( ScopeType.CONVERSATION )
public class CotacaoTabSubgrupoBean extends BaseBean implements Serializable
{
private VersaoCadastralCotizador v ;
public void gravarSubgrupo( )
{
if ( dados.size( ) == 0 )
{
//aqui a forma que eu pego o objeto setado na session no outro bean
HttpSession session = (HttpSession)FacesContext.getCurrentInstance( ).getExternalContext( ).getSession( false ) ;
v = (VersaoCadastralCotizador)session.getAttribute( "vCadastral");
FacesContext.getCurrentInstance( ).addMessage( "Mensagem", new FacesMessage( "Adicione ao menos um subgrupo para cadastrar!" ) ) ;
// MensagemUtil.addInfo("Adicione ao menos um subgrupo para cadastrar!");
}
else
{
fgSubgrupoGravado = true ;
}
dados = new ArrayList<SubgrupoCotizador>( ) ;
}
Entao galera eu preciso conseguir pegar ou uma instancia do bean CotacaoCotizador ou conseguir pegar o objeto versaoCadastral.
Como vocês podem ver pelas anotações estou usando seam. Li que com o seam é muito fácil, mas não to conseguindo!!!
Desde já agradeço a ajuda de todos!