Probelmas para pegar um ManagerBean

Bom dia senhores e senhoras.
Sou iniciante en JSF. Eu estava indo bem. até me deparar com a seguinte situação:

Eu tenho um formulario de pesquisa que acessa uma MBEmpresa (escopo de voew) que retorna uma emprsa. A aprtir do retorno clico em um botão novo cadastro para abrir a tela de cadastro do novo contrato. Até aí tudo bem. O problema é que para persistir o contrato eu preciso da empresa tbm, e eu não estou conseguindo pegar a empresa, na verdade eu nao sei como fazer isso. Abaixo to colocando o codigo da MBEmpresa e MBContrato e a imagem da tela de cadasto.
Agradeço a quem puder ajudar.

@ManagedBean(name = "contratoBean")
@ViewScoped
public class ContratoBean {
	// Para a View pode criar a arvore de componentes
	private Contrato contrato = new Contrato();
	//private EmpresaBean empresaBean; 
	
	//-----------------------------------------
	/**
	 * Métodos padrão do contratoBean para pegar os atributos padrões para os componentes da tela
	 */
	public Contrato getContrato() {
		return contrato;
	}

	public void setContrato(Contrato contrato){
		this.contrato = contrato;
	}
	//---------------------------------------------
	
	/**
	 * método que liga o Bean e prepara a instância do Bean da empresa
	 */
	public String novoContratoBean() {
		//pegar empresa 
		
		this.contrato = new Contrato();
		this.contrato.setAtivo(true);
		return null;
	}
	//---------------------------------------------
@ManagedBean(name = "contratoBean")
@ViewScoped
public class ContratoBean {
	// Para a View pode criar a arvore de componentes
	private Contrato contrato = new Contrato();
	//private EmpresaBean empresaBean; 
	
	//-----------------------------------------
	/**
	 * Métodos padrão do contratoBean para pegar os atributos padrões para os componentes da tela
	 */
	public Contrato getContrato() {
		return contrato;
	}

	public void setContrato(Contrato contrato){
		this.contrato = contrato;
	}
	//---------------------------------------------
	
	/**
	 * método que liga o Bean e prepara a instância do Bean da empresa
	 */
	public String novoContratoBean() {
		//pegar empresa 
		
		this.contrato = new Contrato();
		this.contrato.setAtivo(true);
		return null;
	}
	//---------------------------------------------
	

Apenas empresa que inclui contrato ou você usa a tela de contrato pra outra coisa? Caso não a use pra outra coisa você pode colocar o contrato dentro do próprio managed bean da tela de cadastro de empresa

Eu agora estou tentando uma outra abordagem.
Criei uma classe auxiliar para tentar pegar o MBEmpresa. conforme abaixo:

public class ContextoBean {

	public static Object getBean(String nome) {
        ELContext elContext = FacesContext.getCurrentInstance().getELContext();
        return FacesContext.getCurrentInstance().getApplication()
                .getELResolver().getValue(elContext, null, nome);
    }

E tento chamar pegar o retorno do EmpresaBEan na minha classe ContraBean.

mas nao estou conseguindo. Eu quero apenas pegar o diacho da empresaBean para jogar dentro do contratoBean

@ManagedBean(name = "contratoBean")
@ViewScoped
public class ContratoBean {
	private Contrato contrato = new Contrato();

	
	EmpresaBean empresamb  = (EmpresaBean) ContextoBean.getBean("empresaBean");

.
.
.
/////

Grato a quem puder ajudar