File upload 在两个单独的jsf页面之间传递值
我需要帮助!我花了几天时间断断续续地寻找以下用例的解决方案。请原谅我没有密码 一个Web输入/编辑表单: 用户详细信息–包含用户名、上载文件名等和“保存” 和“上传”按钮File upload 在两个单独的jsf页面之间传递值,file-upload,jsf-2,primefaces,File Upload,Jsf 2,Primefaces,我需要帮助!我花了几天时间断断续续地寻找以下用例的解决方案。请原谅我没有密码 一个Web输入/编辑表单: 用户详细信息–包含用户名、上载文件名等和“保存” 和“上传”按钮 用户填写他的详细信息 用户点击“上传” 系统打开Primefaces文件上载屏幕 用户上传图片 系统关闭Primefaces文件上载自定义屏幕 系统使用上载的文件名更新上载的文件名输出文本 文件名 用户单击以保存用户详细信息 系统验证并保存用户详细信息 Primefaces FileUpload自定义屏幕:该屏幕嵌入在对话框中
(提前)感谢您的帮助。将bean放入视图范围。然后,同一视图中的所有表单都可以使用同一个bean实例
@ManagedBean
@ViewScoped
public class Register {
// ...
}
您可以将视图范围的bean相互注入。您可以将上传表单的bean注入注册表单的bean中,并在action方法中访问它
@ManagedBean
@ViewScoped
public class Register {
@ManagedProperty("#{upload}")
private Upload upload;
// ...
}
不管它是物理上独立的页面,只要您将它们包含在一个相同的主视图中(例如,
或复合视图),那么回发中会保持相同的视图状态。感谢BalusC,感谢您的快速响应。如果你的解决办法奏效,我会再来多谢你的。我已经在这个问题上浪费了这么多时间,我需要休息一下。顺便说一句,这是否意味着包含Primefaces文件上载的popup dialog.xhtml不能包含f:view?为什么会这样?它最终只是同一HTML页面的一部分,绝对不应该包含
。请注意,我假设您使用的是
。是的,您的假设是正确的。感谢您提供的附加信息。不必将这两个bean都设置为@ViewScoped
,是否可以将UploadBean
设置为@RequestScoped
并将注册表项注入其中?之后,我们可以调用RegisterBean
的set
方法来更新上传的项目名称?@Mr.J4mes:这对通过非ajax提交上传的mode=“simple”
有效,但如果通过ajax上传,而ajax上传的请求与提交请求不同,则无法实现。