3.10.获取登录用户信息
2023-07-03 17:08 更新
对于Dorado7项目来说,可能需要在两个地方获取登录用户信息:一个是Java代码当中,另一个就是在Dorado7的View当中。我们先来看看如何在Java代码当中获取登录用户信息。
之前的内容当中我们提到过BDF2当中的ContextHolder对象,在这个ContextHolder对象当中,提供了一系列的静态方法,通过这个方法我们可以取到当前正在使用的数据源名称(如果有设置的话),根据一个Bean的Id取到一个配置在Spring环境当中的Bean,或者取到当前登录的用户名。ContextHolder对象所包含的静态工具方法如下表所示:
方法名 | 描述 |
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的接口对象,这个接口我们之前有过详细的描述,通过返回的接口对象,我们可以获取当前登录用户的各种信息。
某些时候,您可能需要在Dorado的View开发当中调用当前登录用户的信息,这个时候您可以采用BDF2当中提供的Dorado7EL表达式来实现。BDF2当中提供了三个Dorado7EL表达式,分别用户于获取登录用户对象信息、登录的用户的用户名以及登录时产生的错误信息,如下表所示:
EL表达式名称 | 说明 | 示例 |
loginUser | 返回当前登录用户对象,实际上就是调用ContextHolder.getLoginUser()方法 | JS当中:var loginUsername="${loginUser.getUsername()}"; View组件属性当中:${loginUser.getUsername()} |
loginUsername | 返回当前登录用户的用户名 | JS当中:var loginUsername ="${loginUser.getUsername()}"; View组件属性当中:${loginUser.getUsername()} |
authenticationExceptionMessage | 登录时产生的错误信息 | JS当中:var loginUsername="${authenticationExceptionMessage}"; View组件属性当中:${authenticationExceptionMessage} |
以上内容是否对您有帮助:
更多建议: