想象一下,我有一个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是sessioncoped,意思仍然在范围内,所以调试器必须以某种方式访问它。但是如何?
答案 0 :(得分:0)
我不熟悉IntelliJ,但是,我看到有一个console debug tool,您可以在执行时访问变量值。只需停止执行所需的操作,并使用它来访问faces上下文并使用其名称获取托管bean:
FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);
使用CDI时,您可以执行以下操作:
@Inject
private Bean bean;
问候。
答案 1 :(得分:0)
会话范围对象将在HTTP会话中具有引用。只要您对HTTP请求执行某些操作,您就应该能够进入会话,然后访问会话范围的bean。