Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在我的支持bean中获取调用方主体?_Java_Jsf - Fatal编程技术网

Java 如何在我的支持bean中获取调用方主体?

Java 如何在我的支持bean中获取调用方主体?,java,jsf,Java,Jsf,这是我的支持bean(部署到GlassFish): 如何以及在何处获取java.security.Principal对象以了解现在登录的用户是谁?您可以通过 我在这段代码上遇到了nullpointer异常。为什么会这样?@victorio:当您尝试调用null引用上的实例方法时,异常的所有可能原因通常都已在异常自己的javadoc:中列出。如果你仍然口吃,只需按“提问”并发布一个好的SSCCE。我最好的猜测是,您试图在错误的时刻(即尚未创建时)获取FacesContext,就像在servlet筛

这是我的支持bean(部署到GlassFish):

如何以及在何处获取
java.security.Principal
对象以了解现在登录的用户是谁?

您可以通过


我在这段代码上遇到了nullpointer异常。为什么会这样?@victorio:当您尝试调用
null
引用上的实例方法时,异常的所有可能原因通常都已在异常自己的javadoc:中列出。如果你仍然口吃,只需按“提问”并发布一个好的SSCCE。我最好的猜测是,您试图在错误的时刻(即尚未创建时)获取
FacesContext
,就像在servlet筛选器中一样。谢谢:
@ManagedBean
@DeclareRoles({ "USER" })
@RolesAllowed("USER")
public class MyBean {
  public MyBean() {}
  public final String getId() {
    Principal p = .. // how and where?
    return p.getName();
  }
}
Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();