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}


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号