Struts2的Results注解会覆盖还是添加到父类定义的值?

9
以下是示例:我有一个Struts Action的超类和子类。超类定义了 @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 的实例是否仅包含定义为 INDEX@Result,或者它还包含在其任何超类中定义的任何 @Result 条目。 我的 ReportAction 是否知道为 BaseAction.ERROR 设置的位置?
谢谢, Martin

2
是的,你做得对。ReportAction将包含结果ERRORINDEX。你可以看一下**这个答案。为什么不通过Config Browser Plugin**检查result mappings呢? - lschin
3个回答

2

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

一般的超类或子类规则也适用于此情况。如果在子类中找不到某个内容,它会去超类中查找。

在你的情况下,如果在子类中找不到BaseAction.ERROR,它会去超类中查找。


0

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

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


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接