JSF强制URL重写
我使用JSF,我希望避免同一个会话在我的浏览器中共享两个选项卡。我认为一个简单的方法是强制url重写,而不是使用cookies 谁能告诉我如何使用JSF强制重写url 谢谢 圣菲 我希望避免同一会话在浏览器中共享两个选项卡 对不起,这没有道理。这不是您可以从服务器端控制的。所有浏览器在所有打开的选项卡/窗口中使用相同的会话(除了像Chrome Ingonito这样的匿名选项卡/窗口,通过Ctrl+Shift+N)。这就是所有浏览器的工作方式,完全不受您的控制 如果您遇到问题,那么您应该完全以不同的方式解决它,而不是尝试在多个浏览器选项卡/窗口中禁用会话共享(这根本不可能)。这听起来很像在会话范围的bean中错误地存储了请求或视图范围的数据。你不应该那样做。您应该将请求范围的数据存储在请求范围的bean中,并将视图范围的数据存储在视图范围的bean中。会话范围应仅用于会话范围的数据,如登录用户及其首选项(如语言设置) 我认为视图范围实际上就是您要寻找的;只要您通过回发与非常相同的视图(阅读:非常相同的浏览器窗口/选项卡)交互,并且它不会在其他浏览器窗口/选项卡中共享,它就会一直存在 另见:JSF强制URL重写,jsf,url-rewriting,tabs,Jsf,Url Rewriting,Tabs,我使用JSF,我希望避免同一个会话在我的浏览器中共享两个选项卡。我认为一个简单的方法是强制url重写,而不是使用cookies 谁能告诉我如何使用JSF强制重写url 谢谢 圣菲 我希望避免同一会话在浏览器中共享两个选项卡 对不起,这没有道理。这不是您可以从服务器端控制的。所有浏览器在所有打开的选项卡/窗口中使用相同的会话(除了像Chrome Ingonito这样的匿名选项卡/窗口,通过Ctrl+Shift+N)。这就是所有浏览器的工作方式,完全不受您的控制 如果您遇到问题,那么您应该完全以不同
@ConversationScoped
或CODI的@ViewAccessScoped
。至少,您的具体问题可以归结为,您只是使用了错误的作用域,正如回答的那样。它确实是我最初选择的作用域,但转换作用域不可用(正如我在第一次回答中所说的)。但你是对的:具体问题是我使用会话范围而不是会话范围。