对于Dorado7项目来讲,可能须要在两个地方获取登陆用户信息:一个是Java代码当中,另外一个就是在Dorado7的View当中。咱们先来看看如何在Java代码当中获取登陆用户信息。工具
以前的内容当中咱们提到过BDF2当中的ContextHolder对象,在这个ContextHolder对象当中,提供了一系列的静态方法,经过这个方法咱们能够取到当前正在使用的数据源名称(若是有设置的话),根据一个Bean的Id取到一个配置在Spring环境当中的Bean,或者取到当前登陆的用户名。ContextHolder对象所包含的静态工具方法以下表所示:url
方法名
|
描述
|
---|---|
public static String getBdfTempFileStorePath() | 获取BDF2系统使用的系统临时目录的绝对路径,这里获取到的值由bdf2.systemTempDir属性决定,具体参见对bdf2.systemTempDir属性描述 |
public static WebApplicationContext getApplicationContext() | 获取当前系统的Spring的WebApplicationContext对象。 |
public static <T> T getBean(String beanId) | 根据id找到指定的Spring Bean对象。 |
public static HttpServletRequest getRequest() | 获取当前线程正在使用的HttpServletRequest对象。 |
public static HttpServletResponse getResponse() | 获取当前线程正在使用的HttpServletResponse 对象。 |
public static HttpSession getHttpSession() | 获取当前用户的HttpSession 对象。 |
public static IUser getLoginUser() | 获取当前登陆的用户对象,若是用户未登陆,这里将返回null。 |
public static String getLoginUserName() | 获取当前登陆的用户对象,若是用户未登陆,这里将产生NullPointException异常,因此一般使用getLoginUser方法判断用户是否登陆,而不要直接使用这个方法。 |
了解了ContextHolder对象以后,您可能已经明白,在Java代码当中获取登陆用户的方法就是调用ContextHolder.getLoginUser()方法,这个方法返回的是一个IUser的接口对象,这个接口咱们以前有过详细的描述,经过返回的接口对象,咱们能够获取当前登陆用户的各类信息。spa
某些时候,您可能须要在Dorado的View开发当中调用当前登陆用户的信息,这个时候您能够采用BDF2当中提供的Dorado7 EL表达式来实现。BDF2当中提供了三个Dorado7 EL表达式,分别用户于获取登陆用户对象信息、登陆的用户的用户名以及登陆时产生的错误信息,以下表所示:线程