Pregunta

Estamos utilizando el código siguiente para obtener la instancia de bean gestionado por el contexto.

FacesUtils.getManagedBean("beanName");

¿Es la forma correcta de hacerlo ?. Si varios usuarios acceden al mismo grano de lo que sucederá? ¿Cómo se gestionan los casos de frijol?

¿Fue útil?

Solución

Desde FacesUtils no es parte de la implementación JSF estándar, no está claro lo que está haciendo en realidad bajo las sábanas.

En cualquier caso, cuando estés ya en el interior de un bean gestionado, a continuación, la forma preferida es inyectar el otro frijol como propiedad administrada. Vamos a suponer que ya se encuentra en JSF 2.0, así que aquí tiene una JSF 2.0 apuntado ejemplo.

@ManagedBean
@SessionScoped
public void OtherBean {}

@ManagedBean
@RequestScoped
public void YourBean {

    @ManagedProperty("#{otherBean}")
    private void OtherBean;

    @PostConstruct
    public void init() {
        otherBean.doSomething(); // OtherBean is now available in any method.
    }

    public void setOtherBean(OtherBean otherBean) {
        this.otherBean = otherBean;
    }

    // Getter is not necessary.
}

Pero cuando todavía estás en JSF 1.x, entonces usted necesita para hacerlo por la entrada <managed-property> en faces-config.xml como se explica en esta pregunta: los datos que pasan entre beans gestionados .

Si usted usa @Named CDI en lugar de @ManagedBean JSF, el uso @Inject en lugar de @ManagedProperty. Para ello, no se requiere un método de selección.

Ver también:


En cuanto a su preocupación

Si varios usuarios acceden al mismo grano de lo que sucederá? ¿Cómo se gestionan los casos de frijol?

Son gestionados por JSF. Si se encuentra un frijol, a continuación, JSF solo estará exactamente este bean. Si no se encuentra ninguna frijol, a continuación, JSF acaba de crear automáticamente una y poner en el alcance de dicha reglamentación. JSF no va a crear innecesariamente múltiples granos.

scroll top