我需要一些JSF 2.1.29建议。我有一个豆子:
public class PlayerCardBean{
private Integer playerId;
//GET, SET, Other fileds and methods
}
bean的facelet playerCard.xhtml
包含<a>
标记,用于重定向到另一个页面:
<a href="javascript://"
onclick="openPage('#{request.contextPath}/panels/playerExternalTransactionList.html?playerId=#{playerCardBean.playerId}');">
<h:outputText value="#msgs['playerCard.externalTransactionList.all']}" />
</a>
当用户在playerCard.xhtml
上以及我们从playerCard.xhtml
重定向到<a>
标记内的链接时,我需要保持此bean保持活动状态。
视图范围较小。重定向后,bean将被销毁。
当我们在这两个视图之间重定向时,如何保持bean活着?通过<a>
标记,可能还有浏览器中的“后退”按钮。
我认为在会话中存储字段不是一个好主意,因为它们不是真正的会话属性。
答案 0 :(得分:2)
我可以想到以下两种解决方案:
@ConversationScoped
注释来注释您的bean,您需要以编程方式管理(开始和结束)对话。 (This answer包含一些有用的示例代码。)Flash
。答案 1 :(得分:2)
您可以使用@ConversationScope
。此范围以编程方式启动和结束。
http://www.byteslounge.com/tutorials/java-ee-cdi-conversationscoped-example
答案 2 :(得分:1)
JSF 2.1中没有完美的解决方案,但您可以创建自己的范围,这将很好地替代会话范围。
更多细节: https://blog.oio.de/2012/07/24/jsf-2-custom-scopes-without-3rd-party-libraries/