我需要一些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上时,我需要这个bean保持活动状态,因为我们是通过<a>标记中的链接从playerCard.xhtml重定向到的。
视图范围较小。在重定向之后,bean将被销毁。
当我们在这两个视图之间进行重定向时,如何使bean保持活动状态呢?使用<a>标签,也可能使用浏览器中的"back"-button。
我认为将字段存储在会话中不是一个好主意,因为它们不是真正的会话属性。
发布于 2015-05-13 14:34:46
我可以想到以下两种解决方案:
@ConversationScoped注释来注释您的bean,并且您将需要以编程方式管理(开始和结束)对话。(This answer包含一些有用的示例代码。)发布于 2015-05-13 14:38:57
您可以使用@ConversationScope。此作用域以编程方式启动和结束。http://www.byteslounge.com/tutorials/java-ee-cdi-conversationscoped-example
发布于 2015-05-13 17:07:31
JSF 2.1中没有完美的解决方案,但您可以创建自己的作用域,它将很好地替代会话作用域。
更多细节:https://blog.oio.de/2012/07/24/jsf-2-custom-scopes-without-3rd-party-libraries/
https://stackoverflow.com/questions/30207179
复制相似问题