Jsf 找不到javax.inject.Current

Jsf 找不到javax.inject.Current,jsf,netbeans,cdi,Jsf,Netbeans,Cdi,我正在尝试使用带有玻璃鱼的netbeans学习JSF。 一切都是最新的。从sdk到netbeans。下面是2009年出版的一本书中的一些例子 在这些示例中,作者使用了@Current注释并导入了javax.inject.Current 当我使用netbeans尝试代码时,netbeans会抛出一个错误。我已经添加了JavaEE7库,但什么也没做 在你的答案中,1-解释为什么netbeans找不到类,2-给出将类添加到我的项目中的逐步过程 这是我正在使用的代码 `套餐你好 import java

我正在尝试使用带有玻璃鱼的netbeans学习JSF。 一切都是最新的。从sdk到netbeans。下面是2009年出版的一本书中的一些例子

在这些示例中,作者使用了@Current注释并导入了javax.inject.Current

当我使用netbeans尝试代码时,netbeans会抛出一个错误。我已经添加了JavaEE7库,但什么也没做

在你的答案中,1-解释为什么netbeans找不到类,2-给出将类添加到我的项目中的逐步过程

这是我正在使用的代码

`套餐你好

 import java.util.*;
 import javax.faces.bean.RequestScoped;
 import javax.inject.Named;
 import javax.inject.Inject.Current;

 @Named
 @RequestScoped
 public class QuoteRequest {

   private String symbol;
   @Current
   private StockService service;
   private Date quoteDate = new Date();

   public QuoteRequest() {

   }

   public String getSymbol() {
    return symbol;
  }

  public void setSymbol(String symbol) {
    this.symbol = symbol;
  }

 public double getStockValue(){
    return service.getStockValue(this);
 }

 public Date getQuoteDate() {
    return quoteDate;
}

 public void setQuoteDate(Date qouteDate) {
    this.quoteDate = qouteDate;
 }
}
`你需要做两件事

  • 使用javax.Inject包中的@Inject注释,而不是书中所说的@Current注释
  • 确保WEB-INF文件夹中有一个空的beans.xml文件。这个文件对于将您的bean作为CDIBean处理非常重要

  • 您使用Spring为问题添加了标签。
    javax.inject
    包来自JavaEE,而静态接口
    javax.inject.Current
    在JavaEE7中找不到。也许,它在某种程度上仍然以另一个名字存在。也许,它是
    @Default
    。为什么不迁移到学习新事物,避免那些2009年的旧事物呢?我已经去掉了Spring标签。您有推荐的最新书籍吗?除了Java SE之外,到目前为止,除了官方文档和/或官方教程之外,我从未读过其他任何书籍:),因此除了它们之外,我不知道有什么好书。