SORU
13 NİSAN 2010, Salı


İsmi tarafından yönetilen AKSARAY fasulye almak Sunucu uygulaması ile ilgili herhangi bir sınıfta

Hangi isimle referans benim @ManagedBeans etmek istiyorum özel bir sunucu uygulaması (AJAX/JSON) yazmaya çalışıyorum. Harita umuyorum:

http://host/app/myBean/myProperty

için:

@ManagedBean(name="myBean")
public class MyBean {
    public String getMyProperty();
}

Normal bir sunucu adı ile bir bean yüklemek mümkün mü? Sunucu uygulaması veya yardımcı kullanabileceğim bir OLUMSUZLUK var mı?

Tüm bu çok açıktır Bahar kurban gibiyim.

CEVAP
13 NİSAN 2010, Salı


Bir Sunucu uygulaması, kapsamlı fasulye isteği ile ulaşabilirsiniz:

Bean bean = (Bean) request.getAttribute("beanName");

ve oturum kapsamlı fasulye:

Bean bean = (Bean) request.getSession().getAttribute("beanName");

ve uygulama fasulye ile kapsamı:

Bean bean = (Bean) getServletContext().getAttribute("beanName");

Eğer bir bağımlılık enjeksiyon çalıştırıyorsanız yetenekli çerçeve/konteyner ve fasulye @Named CDI yerine OLUMSUZLUK daha kolay @ManagedBean, tarafından yönetilmektedir:

@Inject
private Bean bean;

Sen varken kapsamı, ne olursa olsunaslındaFacesContext iç (istek FacesServlet ile servis edilmiş geçerli HTTP yani), sonra normal JSF2 yolu Application#evaluateExpressionGet() kullanarak

FacesContext context = FacesContext.getCurrentInstance();
Bean bean = context.getApplication().evaluateExpressionGet(context, "#{beanName}", Bean.class);

aşağıdaki gibi convenienced olabilir

@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName) {
    FacesContext context = FacesContext.getCurrentInstance();
    return (T) context.getApplication().evaluateExpressionGet(context, "#{"   beanName   "}", Object.class);
}

ve aşağıdaki gibi kullanılabilir

Bean bean = findBean("bean");

Zaten içine girince ancak @ManagedBean @ManagedProperty kullanarak daha açıklayıcı olduğu için temiz.

@ManagedProperty("#{bean}")
private Bean bean;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006