通过前面的描述我们已经知道角色信息从属于一个页面,因此在dorado的设计中角色信息是通过ViewModel的role属性描述的。参看ViewModel的接口申明(com.bstek.dorado.view.ViewModel):
public java.lang.String getRole()取得与视图模型相关的角色. |
由于角色信息的初始化时在视图模型的初始化过程中完成的,因此对于角色的设定我们就因该在视图模型的初始化函数中实现,视图模型的初始化函数申明如下:
public void init(int state)throws java.lang.Exception视图模型初始化 |
这样我们就可以在视图模型的实现类中设定角色
public void init(int state) throws Exception { |
以上的代码中要注意设定角色代码的位置,由于视图模型通过super.init(state)完成初始化以及角色配置文件信息的读取,因此在super.init(state)之前我们必须设定好视图模型的角色信息(千万注意)
对于角色的设定,通常是需要根据登陆用户的信息才能决定的,对于大多数的web系统而言都会将登陆信息缓存到用户的上下文中(Session),则可以通过dorado的上下文(DoradoContext)获取登陆用户信息.如下范例:
DoradoContext context = DoradoContext.getContext(); |
通过DoradoContext获取登陆用户信息,并转换为当前页面配置的角色:
DoradoContext context = DoradoContext.getContext(); |
此处代码将页面角色命名为page_admin,page_user是为了突出于系统角色的差别。
通过这种方式指定dorado页面的角色。以上代码中DoradoContext的具体说明参考附录。