java - 使用 JSF RequestScoped Bean 进行确认页面

标签 java jsf backing-beans

我有一个 JSF 页面,它加载一个用户并允许我将角色分配给该特定用户。支持 Bean,AssignRolesBean@RequestScoped,我希望它保持这样。然而,这是我的问题......

当表单提交时,它会调用AssignRolesBean.execute()。然后,这将返回确认页面的路径。在此确认页面上,我想显示将分配哪些新角色以及将删除哪些角色。但是,我在将用户加载到确认页面时遇到问题。

在初始分配角色页面上,使用 GET 参数设置 userId。然后将其作为 h:inputHidden 元素添加到页面上。它确实被提交了。但是,同样,在下一页上,未设置 userId(这会加载用户)。有什么方法可以保留 RequestScope 而不必将 userId 存储在 SessionMap 中?有人告诉我,使用隐藏输入将允许您跨页面获取数据。但是,我遇到了麻烦。

最佳答案

如果你开发jsf2应用程序,你可以使用flashscope来传递参数。 有关闪存范围的更多信息,您可以查看Learning JSF2: Using Flash scope

或者你可以将参数放入 session 映射中

获取sessionMap的代码片段:

FacesContext.getCurrentInstance().getExternalContext().getSessionMap()

关于java - 使用 JSF RequestScoped Bean 进行确认页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749792/

相关文章:

java - 如何告诉 Eclipse java Formatter (Ctrl + shift+ F) 停止删除空格

java - Primefaces 列切换器从复选框列表中删除项目

java - 通过 postValidate 进行 JSF 跨字段验证,无需在支持 bean 中按名称查找组件

spring - 导航到另一个页面时,@Viewscoped bean 不会被销毁

jsf-2 - 从支持 bean 方法为列表中的每个项目设置 itemDisabled

java - 区分不同种类的 JSF 托管 Bean

java - 值未存储在变量中

java - Volley Post 请求在 onResponse 内未返回任何响应

java - 预期 Android API 级别为 21+,但在使用 Retrofit 2、OkHttp3 时为 19

jsf - bean 操作方法中的输入字段值为空