我通过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。谢谢你的帮助。
答案 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