Struts2结果注释是否覆盖或添加到超类定义的值?

unc*_*ase 9 java annotations struts2 superclass

以下示例:我有一个struts动作的超类和子类.超类定义@Results,子类需要定义其他特定@Result条目.例如:

@Results({
    @Result(name=BaseAction.ERROR, location="/WEB-INF/jsp/error.jsp")
})
public abstract class BaseAction extends ActionSupport implements ServletRequestAware {
    ...
}
Run Code Online (Sandbox Code Playgroud)

..和一个子类

@Results({
    @Result(name=BaseAction.INDEX, location="/WEB-INF/jsp/reporting/index.jsp")
})
public class ReportAction extends BaseAction {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否ReportAction的实例只有具备@ResultINDEX定义,或者它也包含任何@Result在任何定义的项目,如果它的父类.我是否ReportAction知道为BaseAction.ERROR?? 设置的位置?

谢谢,马丁

小智 2

是的,您的 ReportAction 类将同时具有 BaseAction.INDEX 和 BaseAction.ERROR。

一般超类或子类规则也适用于这种情况。如果您在子类中找不到某些内容,它将去查找超类。

如果您的子类中未找到 BaseAction.ERROR ,它将去查找超类。