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

时间:2011-09-26 13:59:04

标签: java struts2 annotations superclass

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

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

..和一个子类

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

我的问题是,ReportAction 的实例是否定义了@Result INDEX,还是包含任何@Result条目如果它是超类。 我的ReportAction是否知道为BaseAction.ERROR ??

设置的位置

谢谢, 马丁

3 个答案:

答案 0 :(得分:2)

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

一般超类或子类规则也适用于这种情况。如果你在子类中找不到东西,那么它将进入超类。

在您的子类中未找到BaseAction.ERROR的情况下,它会查看超类。

答案 1 :(得分:0)

两者都有。您可以使用配置浏览器插件进行验证。

答案 2 :(得分:0)

它将能够识别BaseAction.INDEX和BaseAction.ERROR。

如果结果在Subclass(在你的情况下为ReportAction类)中可用,它将遵循,否则它将查找超类(在你的情况下为BaseAction类)。