什么是资源管理的action,如何开发action
发布日期:2009-7-8 信息来源:http://www.chysoft.net

系统管理中经常会涉及到用户的增加、栏目的修改、栏目的授权等操作,我们将用户、栏目等称之“资源”,增加、修改、授权等操作称之为“动作”或“Action”,那么针对不同资源就有不同类型的操作,主要资源包括组织、用户、服务、用户组分类、用户组、别名等,资源相应操作如:增加、修改、删除、移动、排序、授权等。
对资源进行管理操作时提供了基本的功能,如添加用户,会在系统中创建一个新的用户账号,但如果此时有一个新的需求,添加用户后需要给该账号的实际使用者发送邮件、短信通知,一般的系统不会提供太多个性化的功能,但我们可以通过添加定义创建用户关联的Action,在该Action实现个性化的Java代码,实现该功能,整体在一个事务中完成。这就是资源管理中定义action的作用,即在无需源码的情况下在系统中嵌入新开发的个性化功能,降低了系统间的耦合程度。
如果我们将资源管理的操作(如,增加用户)称之为“主操作”,Action是主操作的关联动作,只有当执行主操作时才会触发关联action的执行,关联action的操作可以定义在主操作的之前或之后执行,如果主操作之前有关联的action且执行失败或抛出异常,则后续的执行终止。下面是一个action的示例代码:
import net.sysplat.common.I_ResourceAction;
public class TestAction implements I_ResourceAction
{
public void execute(ActionContext context) throws Exception
{
System.out.println("资源类型:" + context.getResourceType());
System.out.println("资源操作:" + context.getActionType());
System.out.println("资源ID:" + context.getResourceObject().getId());
if(context.getResourceObject() != null)
{
System.out.println("资源名称:" + context.getResourceObject().getName());
   }
  
switch(context.getResourceType())
{
case 'U':
   System.out.println("用户登录帐号:" + ((User)context.getResourceObject()).getLoginid());
   //System.out.println(context.getAttribute(User.NEW_LOGIN_ID));
   break;
}
}
}
1、关联action类必须实现net.sysplat.common.I_ResourceAction接口。
2、执行关联action,系统自动传递ActionContext上下文,相关的数据和对象可以通过上下文获取。
3、不同action一般放在不同Java类中处理,也可以合并后使用相关参数进行区分。

粤ICP备11095012号-1
Copyright 2005-2017 深圳市承元软件技术有限公司