在两个单独的jsf页面之间传递值

时间:2012-12-19 12:30:46

标签: file-upload jsf-2 primefaces

我需要帮助!我花了几天时间来寻找以下用例的解决方案。请原谅我没有代码。

一个Web输入/编辑表单:

用户详细信息 - 包含用户名,uploadfileName等,以及“保存”     和“上传”按钮

  1. 用户填写其详细信息
  2. 用户点击“上传”
  3. 系统打开Primefaces FileUpload屏幕
  4. 用户上传图片
  5. 系统关闭Primefaces FileUpload自定义屏幕
  6. 系统使用上传的内容更新uploadfileName outputText 文件名。
  7. 用户点击以保存用户详细信息。
  8. 系统验证并保存用户详细信息。
  9. Primefaces FileUpload自定义屏幕:它嵌入在对话框中,并且位于单独的xhtml文件中(用于可重用性)。

    问题是如何从Upload Dialog传递uploadedfileName值来更新调用(主)用户页面中的uploadfileName outputText。

    例如,在Vaadin中,在特立尼达的情况下可以使用ActionListener或ReturnActionListener。

    感谢您的帮助(提前)。

1 个答案:

答案 0 :(得分:0)

将bean放在视图范围内。然后,可以在同一视图中的所有表单中使用同一个bean实例。

@ManagedBean
@ViewScoped
public class Register {
    // ...
}

您可以互相注入视图范围的bean。您可以在注册表单的bean中注入上载表单的bean,并在操作方法中访问它。

@ManagedBean
@ViewScoped
public class Register {

    @ManagedProperty("#{upload}")
    private Upload upload;

    // ...
}

如果它是物理上独立的页面并不重要,只要您将它们包含在同一个主视图中,例如: <ui:include>或复合,然后在回发中维护相同的视图状态。