DoradoContext
2024-03-07 18:37 更新
DoradoContext# 简介 DoradoContext是Dorado的上下文对象,在DoradoContext中,将上下文作用域区分为四种类型,分别为:
作用域中的数据存取
通过DoradoContext提供的相关方法我们可以存取相关作用域下的属性,这些方法有:
public Object getAttribute(String scope, String key);
public void setAttribute(String scope, String key, Object value);
public void removeAttribute(String scope, String key);
例如我们可以通过以下代码访问HttpSession中的值:
DoradoContext context = DoradoContext.getCurrent();
String username = context.getAttribute(DoradoContext.SESSION, "username");
通过以下代码访问ServletContext中某一个attribute的值
DoradoContext context = DoradoContext.getCurrent();
Object securityData = context.getAttribute(DoradoContext.APPLICATION, "securityData");
当然了除了可以通过getAttribute获取指定作用域中的值,你也可以用setAttribute方法设置指定作用域指定属性的值,范例代码如:
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("用户名和密码不能为空!");
}
}
另外也提供了不指定作用域的相关方法,有:
public Object getAttribute(String key);
在获取上下文对象的时候如果你不指定作用域的时候,如:
DoradoContext context = DoradoContext.getCurrent();
String username = context.getAttribute("username");
DoradoContext会依照如下的顺序挨个到不同的作用域中查找是否有指定的属性,如果找到就直接返回,不再继续查找:
关于VIEW作用域
VIEW作用域的数据可以在Dorado的AJAX请求中自动在客户端和服务器端同步。例如:你可以在Ajax请求中在服务器端设置变量,并在Ajax请求结束后,在客户端获取这个变量的值。 客户端JS获取Context中VIEW作用域的变量,参考代码:
var username = view.get("context").get("username");
其它相关方法
//获取Spring中的ApplicationContext
public ApplicationContext getApplicationContext()
//获取Spring中的WebApplicationContext
public WebApplicationContext getWebApplicationContext()
//获取当前web请求的ServletContext
public static ServletContext getServletContext()
//获取当前线程绑定的HttpServletRequest
public static HttpServletRequest getRequest()
以上内容是否对您有帮助:
← 高级篇
更多建议: