如何将UploadedFile(Primefaces showcase fileUpload auto)添加到另一个bean?

时间:2017-07-16 15:51:17

标签: jsf primefaces

我通过primefaces fileUpload

将文件存储到这个bean中
@ManagedBean(name = "uploadController")
class UploadController{

private UploadedFile uploadedFile;

public void handleFileUpload(FileUploadEvent event) {
    setUploadedFile(event.getFile());
} 
//getter&setter

是否可以访问字段uploadedFile到另一个bean,例如

@SessionScoped
public class BrandController implements Serializable {


private UploadedFile logo;
//getter&setter

并以某种方式链接它们? 我试过这个:

@ManagedProperty(value = "#{uploadController.uploadedFile}")
private UploadedFile logo;

但是当我尝试在其上使用方法时,调试显示徽标为null。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我认为我使用了错误的ManagedProperty。

@ManagedBean(name = "uploadController")
public class UploadController {

@ManagedProperty(value = "#{brandController}")
private BrandController brandController;

public void handleFileUpload(FileUploadEvent event) {
    brandController.setLogo(event.getFile());
}

答案 1 :(得分:0)

你应该阅读关于jsf范围的这个很棒的答案。

How to choose the right bean scope?

会话和应用程序范围允许您在与其关联的jsf页面的交互之外使用bean,但是这可能会导致您在" unespected"中的其他位置遇到此bean。状态。

对于之前所说的内容,为此我使用了闪存范围,女性是一个短暂的生活范围,它如何在上面的StackOverflow链接以及以下内容中解释:

Pass an object between @ViewScoped beans without using GET params