gpt4 book ai didi

java - 如何调试 session 范围的 bean?

转载 作者:行者123 更新时间:2023-12-01 14:28:30 25 4
gpt4 key购买 nike

假设我有一个 SessionScoped 的 bean。 (称之为:Bean A)

当我请求访问此 bean 的页面时,此 bean 会被初始化,并相应地设置它的一些属性。

然后我访问与此 bean 无关的其他页面。 ( Bean A ) 但是,我仍然想在调试器中查看此 Bean 状态。我怎样才能做到这一点?

如果我的问题不清楚,我会尝试重新表述:

@SessionScoped
@Named
public class User{
private String name;
//getters,setters
}

现在想象一个 user.xhtml,它将名称设置为 user.name..

现在假设我在 someotherpage.xhtml 页面上,并且正在调试我的应用程序。

由于此 bean 是 session 范围的(即仍在范围内),因此调试器必须能够以某种方式访问​​它。但如何呢?

最佳答案

我对IntelliJ不熟悉,但是,我看到有一个console debug tool ,您可以在执行时访问变量值。只需在您想要的位置停止执行并使用它来访问 faces 上下文并使用其名称获取托管 bean:

  FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);

当使用CDI时,你可以像下面这样做:

@Inject
private Bean bean;

来自this SO answer .

问候。

关于java - 如何调试 session 范围的 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16997759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com