2013-12-21 142 views
1

我在使用@Named註釋時遇到了一些問題。例如,下面bean正常工作,接收和上傳文件:@命名註釋不起作用

@ManagedBean 
@RequestScoped 
public class Bean { 
private UploadedFile uploadedFile; 

public void submit() throws IOException { 
    String fileName = FilenameUtils.getName(uploadedFile.getName()); 
    String contentType = uploadedFile.getContentType(); 
    byte[] bytes = uploadedFile.getBytes(); 

    // Now you can save bytes in DB (and also content type?) 

    FacesContext.getCurrentInstance().addMessage(null, 
     new FacesMessage(String.format("File '%s' of type '%s' successfully uploaded!", fileName, contentType))); 
} 

public UploadedFile getUploadedFile() { 
    return uploadedFile; 
} 

public void setUploadedFile(UploadedFile uploadedFile) { 
    this.uploadedFile = uploadedFile; 
} 

}

但是如果我取代了@ManagedBean@RequestedScope@Named@RequestScoped它失敗與此異常:

javax.el.PropertyNotFoundException:目標不可到達,標識符'bean'解析爲null

我知道@Named我在Netbeans項目中設置了不正確的版本嗎?我也在Glassfish 4服務器上進行部署。根據需要,通過CDI 1.1

感謝

+0

我認爲其他問題應該被標記爲'重複',因爲它被問及上述問題。 – Kerry

回答

0

你有一個beans.xml,?

+0

啊沒有。我會嘗試... – Kerry

+0

CDI 1.1默認檢測隱式bean。如果你有'@Named @ RequestScoped',那麼bean.xml就不需要被發現。 –

+0

我現在有一個問題與CDI和戰斧,但我在這裏開始了它作爲一個新的問題http://stackoverflow.com/questions/20719382/tommahawk-myfaces-and-cdi – Kerry