DoradoContext

2024-03-07 18:37 更新

DoradoContext# 簡(jiǎn)介 DoradoContext是Dorado的上下文對(duì)象,在DoradoContext中,將上下文作用域區(qū)分為四種類型,分別為:

作用域中的數(shù)據(jù)存取

通過(guò)DoradoContext提供的相關(guān)方法我們可以存取相關(guān)作用域下的屬性,這些方法有:

public Object getAttribute(String scope, String key);
public void setAttribute(String scope, String key, Object value);
public void removeAttribute(String scope, String key);

例如我們可以通過(guò)以下代碼訪問(wèn)HttpSession中的值:

DoradoContext context = DoradoContext.getCurrent();
String username = context.getAttribute(DoradoContext.SESSION, "username");

通過(guò)以下代碼訪問(wèn)ServletContext中某一個(gè)attribute的值

DoradoContext context = DoradoContext.getCurrent();
Object securityData = context.getAttribute(DoradoContext.APPLICATION, "securityData");

當(dāng)然了除了可以通過(guò)getAttribute獲取指定作用域中的值,你也可以用setAttribute方法設(shè)置指定作用域指定屬性的值,范例代碼如:?

public void authorization(String username, String password) throws Exception{
    if (StringUtils.isNotEmpty(username) && StringUtils.isNotEmpty(password)){
        DoradoContext context = DoradoContext.getCurrent();
        context.setAttribute(DoradoContext.SESSION, "username", username);
    }else{
        throw new Exception("用戶名和密碼不能為空!");       
    }
}

另外也提供了不指定作用域的相關(guān)方法,有:

public Object getAttribute(String key);

在獲取上下文對(duì)象的時(shí)候如果你不指定作用域的時(shí)候,如:

DoradoContext context = DoradoContext.getCurrent();
String username = context.getAttribute("username");

DoradoContext會(huì)依照如下的順序挨個(gè)到不同的作用域中查找是否有指定的屬性,如果找到就直接返回,不再繼續(xù)查找:

關(guān)于VIEW作用域

VIEW作用域的數(shù)據(jù)可以在Dorado的AJAX請(qǐng)求中自動(dòng)在客戶端和服務(wù)器端同步。例如:你可以在Ajax請(qǐng)求中在服務(wù)器端設(shè)置變量,并在Ajax請(qǐng)求結(jié)束后,在客戶端獲取這個(gè)變量的值。 客戶端JS獲取Context中VIEW作用域的變量,參考代碼:

var username = view.get("context").get("username");

其它相關(guān)方法

//獲取Spring中的ApplicationContext
public ApplicationContext getApplicationContext()
//獲取Spring中的WebApplicationContext 
public WebApplicationContext getWebApplicationContext()
//獲取當(dāng)前web請(qǐng)求的ServletContext
public static ServletContext getServletContext()
//獲取當(dāng)前線程綁定的HttpServletRequest
public static HttpServletRequest getRequest()
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)