如何用dorado在主页面获取登录后的用户名,显示用户名如:欢迎你XXX

首页添加用户名 (主要代码)
已邀请:

斷亂 - Easy to say, hard to do.

赞同来自:

在主頁面中寫一個 AjaxAction,獲取用戶名:
@Expose
public String getLoginUserName(){
// 獲取登錄用戶
com.bstek.bdf2.core.business.IUser iUser = com.bstek.bdf2.core.context.Conte
xtHolder.getLoginUser();
// 判斷是否為空
if(iUser != null){
return iUser.getUsername();
}
return null;
}

在你需要顯示的控件的 onReady() 事件中顯示:
var ajaxAction = view.get("#ajaxAction");
var label = view.get("#label");

// 執行 AjaxAction
ajaxAction.execute(){function(result){
// 顯示返回值
label.set("text", result);
}}

斷亂 - Easy to say, hard to do.

赞同来自:

對於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當中提供的Dorado7 EL表達式來實現。BDF2當中提供了三個Dorado7 EL表達式,分別用戶於獲取登錄用戶對象信息、登錄的用戶的用戶名以及登錄時產生的錯誤信息,如下表所示:

EL表達式名稱
說明
示例
loginUser 返回當前登錄用戶對象,實際上就是調用ContextHolder.getLoginUser()方法

JS當中:var loginUsername="${loginUser.getUsername()}";

View組件屬性當中:${loginUser.getUsername()}

loginUsername 返回當前登錄用戶的用戶名

JS當中:var loginUsername="${loginUsername}";

View組件屬性當中:${loginUsername}

authenticationExceptionMessage 登錄時產生的錯誤信息

JS當中:var loginUsername="${authenticationExceptionMessage}";

View組件屬性當中:${authenticationExceptionMessage}
 
參考地址://wiki.bsdn.org/pages/viewpage.action?pageId=21659850

要回复问题请先登录注册