相关疑难解决方法(0)

可以将@ManagedBean作为@ManagedProperty注入@WebServlet吗?

在我的Java EE 6-webapp(运行在最新的GlassFish 3.1上)中,我正在使用JSF2-ManagedBeans并将@ManagedProperty它们注入到其他ManagedBeans中.现在我想知道我是否也可以注入@ManagedBean一个@WebServlet,使用@ManagedProperty.一些代码:

@WebServlet(name = "vdd")
public class VddServlet extends HttpServlet
{
  @ManagedProperty(value = "#{userIdentity}")
  private UserIdentity identity;
}
Run Code Online (Sandbox Code Playgroud)

ManagedBean看起来像这样:

@ManagedBean
public class UserIdentity 
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

这样工作吗?如果没有,我有什么其他方法将ManagedBean注入WebServlet(没有CDI,目前不是一个选项 - 因为GF 3.1 B32/33与OSGi-Java EE-apps结合存在一些问题,但我们时间不长)?

java servlets java-ee jsf-2

5
推荐指数
1
解决办法
5264
查看次数

在另一个托管bean中获取托管bean引用

由于这个BalusC帖子,我尝试在另一个托管bean中获取托管bean的实例:这里

使用findBean方法,它很棒,我检索我的bean,但ManagedProperty我无法得到我的bean.

我要注入的bean是这个:

@ManagedBean(name="locale")
@SessionScoped
public class LocaleBean {

   private String locale;

   public String getLocale() {              
        return locale;
   }

   public void setLocale(String locale) {
        FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));      
        this.locale = locale;
   }

}
Run Code Online (Sandbox Code Playgroud)

所以,当我打电话给LocaleBean locale = findBean("locale");我的loginbean时,它的工作原理是:

@ManagedProperty("#{locale}") // OR localeBean, LocaleBean...
private LocaleBean locale;
Run Code Online (Sandbox Code Playgroud)

不起作用......

com.sun.faces.mgbean.ManagedBeanCreationException:Impossibledecréerlebeangéré«login».Lesproplèmessuivantsontétédétectés: - Lapropriété«locale»dubeangéré«login»n'existe pas.

告诉我为什么 ?

jsf managed java-ee jsf-2

5
推荐指数
1
解决办法
4638
查看次数

标签 统计

java-ee ×2

jsf-2 ×2

java ×1

jsf ×1

managed ×1

servlets ×1