3.10.獲取登錄用戶信息

2023-07-03 17:08 更新
對(duì)于Dorado7項(xiàng)目來說,可能需要在兩個(gè)地方獲取登錄用戶信息:一個(gè)是Java代碼當(dāng)中,另一個(gè)就是在Dorado7的View當(dāng)中。我們先來看看如何在Java代碼當(dāng)中獲取登錄用戶信息。
之前的內(nèi)容當(dāng)中我們提到過BDF2當(dāng)中的ContextHolder對(duì)象,在這個(gè)ContextHolder對(duì)象當(dāng)中,提供了一系列的靜態(tài)方法,通過這個(gè)方法我們可以取到當(dāng)前正在使用的數(shù)據(jù)源名稱(如果有設(shè)置的話),根據(jù)一個(gè)Bean的Id取到一個(gè)配置在Spring環(huán)境當(dāng)中的Bean,或者取到當(dāng)前登錄的用戶名。ContextHolder對(duì)象所包含的靜態(tài)工具方法如下表所示:
方法名
描述
public static String getBdfTempFileStorePath()獲取BDF2系統(tǒng)使用的系統(tǒng)臨時(shí)目錄的絕對(duì)路徑,這里獲取到的值由bdf2.systemTempDir屬性決定,具體參見對(duì)bdf2.systemTempDir屬性描述
public static WebApplicationContext getApplicationContext()獲取當(dāng)前系統(tǒng)的Spring的WebApplicationContext對(duì)象。
public static <T> T getBean(String beanId)根據(jù)id找到指定的Spring Bean對(duì)象。
public static HttpServletRequest getRequest()獲取當(dāng)前線程正在使用的HttpServletRequest對(duì)象。
public static HttpServletResponse getResponse()獲取當(dāng)前線程正在使用的HttpServletResponse 對(duì)象。
public static HttpSession getHttpSession()獲取當(dāng)前用戶的HttpSession 對(duì)象。
public static IUser getLoginUser()獲取當(dāng)前登錄的用戶對(duì)象,如果用戶未登錄,這里將返回null。
public static String getLoginUserName()獲取當(dāng)前登錄的用戶對(duì)象,如果用戶未登錄,這里將產(chǎn)生NullPointException異常,所以通常使用getLoginUser方法判斷用戶是否登錄,而不要直接使用這個(gè)方法。
了解了ContextHolder對(duì)象之后,您可能已經(jīng)明白,在Java代碼當(dāng)中獲取登錄用戶的方法就是調(diào)用ContextHolder.getLoginUser()方法,這個(gè)方法返回的是一個(gè)IUser的接口對(duì)象,這個(gè)接口我們之前有過詳細(xì)的描述,通過返回的接口對(duì)象,我們可以獲取當(dāng)前登錄用戶的各種信息。

某些時(shí)候,您可能需要在Dorado的View開發(fā)當(dāng)中調(diào)用當(dāng)前登錄用戶的信息,這個(gè)時(shí)候您可以采用BDF2當(dāng)中提供的Dorado7EL表達(dá)式來實(shí)現(xiàn)。BDF2當(dāng)中提供了三個(gè)Dorado7EL表達(dá)式,分別用戶于獲取登錄用戶對(duì)象信息、登錄的用戶的用戶名以及登錄時(shí)產(chǎn)生的錯(cuò)誤信息,如下表所示:
EL表達(dá)式名稱
說明
示例
loginUser
返回當(dāng)前登錄用戶對(duì)象,實(shí)際上就是調(diào)用ContextHolder.getLoginUser()方法
JS當(dāng)中:var loginUsername="${loginUser.getUsername()}";

View組件屬性當(dāng)中:${loginUser.getUsername()}
loginUsername
返回當(dāng)前登錄用戶的用戶名
JS當(dāng)中:var loginUsername ="${loginUser.getUsername()}";

View組件屬性當(dāng)中:${loginUser.getUsername()}
authenticationExceptionMessage
登錄時(shí)產(chǎn)生的錯(cuò)誤信息
JS當(dāng)中:var loginUsername="${authenticationExceptionMessage}";

View組件屬性當(dāng)中:${authenticationExceptionMessage}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)