gboat2.base.core.annotation
注释类型 Operation


@Inherited
@Retention(value=RUNTIME)
@Target(value={METHOD,TYPE})
public @interface Operation

 模块操作注解。
 含义:当配置一个该注解,表示为模块定义了一个操作,同时注解对应的action method纳入访问权限控制,用户需要配置权限才能访问。
 注解规则:
 1、一个方法可以有多个注解,表示为其定义多个操作。
 2、在方法上的注解与在类上在注解有重复时,以方法上的注解为准。
 3、无论注解在类或方法上,只有注解上同时指定invokeAction,invokeMethod时,才进行跨action控制,只指定其中之一不能实现跨action。
    eg: @Operation(name="xname",code="xcode",invokeAction="xaction",invokeMethod="xmethod")
    public class PreferenceAction extends BaseActionSupport {... } 受控方法为xaction类的xmethod
    
    @Operation(name="xname",code="xcode",invokeAction="xaction",invokeMethod="xmethod")
    public void prefech(){...} 受控方法为xaction类的xmethod 及注解所在类的prefech方法 (即此种情况有两个方法受控)
    
 4、如果注解在方法上,且未指定invokeAction,则invokeMethod的值被忽略,真正的受控方法是该注解所在的方法。
    eg: @Operation(name="xx",code="xx",invokeMethod="xx")
    public void prefech(){...} 受控方法为prefech
    
 5、如果注解在方法上,且未指定invokeMethod,则invokeAction的值被忽略,真正受控的方法是该注解所在的方法。
    eg: @Operation(name="xx",code="xx",invokeAction="xx")
    public void prefech(){...} 受控方法为prefech
    
 6、如果注解在方法上,invokeMethod与invokeAction都未指定,真正受控的方法是该注解所在的方法。
    eg: @Operation(name="xx",code="xx")
    public void prefech(){...} 受控方法为prefech
    
 7、如果注解在类上,invokeMethod与invokeAction都未指定,真正受控的方法是code指向的方法。
    eg: @Operation(name="xname",code="xcode")
    public class PreferenceAction extends BaseActionSupport {... } 受控方法PreferenceAction为xcode
    
 8、如果注解在类上,且未指定invokeMethod,则invokeAction的值被忽略,真正受控的方法是code指向的方法。
    eg: @Operation(name="xname",code="xcode",invokeAction="xaction")
    public class PreferenceAction extends BaseActionSupport {... } 受控方法为PreferenceAction的xcode
    
 9、如果注解在类上,指定了invokeMethod,但未指定invokeAction,真正受控的方法是invokeMethod指向的方法。
    eg: @Operation(name="xname",code="xcode",invokeMethod="xmethod")
    public class PreferenceAction extends BaseActionSupport {... } 受控方法为PreferenceAction的xmethod
 
 特殊情况:在类上的注解,如果code或invokeMethod共同计算出的受控方法理论值为add、delete,则真正的受控方法分别为edit,delete或ajaxDelete。
 

从以下版本开始:
3.0
作者:
lysming, tanxw
另请参见:
Operations

必需元素摘要
 String code
          操作编码,在同一个action的所有注解中,code必须是唯一的
 String name
          操作名称,如“新增xx”,“编辑xx”等
 
可选元素摘要
 String desc
          描述。
 String invokeAction
          若受控的方法是跨action的,则需指定相应的action
 String invokeMethod
          受控的方法
 

元素详细信息

name

public abstract String name
操作名称,如“新增xx”,“编辑xx”等


code

public abstract String code
操作编码,在同一个action的所有注解中,code必须是唯一的

invokeAction

public abstract String invokeAction
若受控的方法是跨action的,则需指定相应的action

默认值:
""

invokeMethod

public abstract String invokeMethod
受控的方法

默认值:
""

desc

public abstract String desc
描述。主要供人而非机器阅读,无特殊需要,无需配置。

默认值:
""


Copyright © 2014 广联达软件股份有限公司(Glodon Software Co., Ltd.). All rights reserved.