Java Struts2结果注释是否覆盖或添加到超类定义的值?
下面的示例:我有一个struts操作的超类和子类。 超类定义Java Struts2结果注释是否覆盖或添加到超类定义的值?,java,struts2,annotations,superclass,Java,Struts2,Annotations,Superclass,下面的示例:我有一个struts操作的超类和子类。 超类定义@Result,子类需要定义额外的特定的@Result条目。例如: @Results({ @Result(name=BaseAction.ERROR, location="/WEB-INF/jsp/error.jsp") }) public abstract class BaseAction extends ActionSupport implements ServletRequestAware { ... } …和一
@Result
,子类需要定义额外的特定的@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
,或者它是否还包含在任何if超类中定义的@Result
条目。
我的ReportAction
是否知道为BaseAction.ERROR设置的位置
谢谢,
马丁两者都有。您可以使用配置浏览器插件进行验证。它将能够识别BaseAction.INDEX和BaseAction.ERROR
如果结果在子类(在您的案例ReportAction类中)中可用,则它将遵循该结果,否则它将在超类(在您的案例BaseAction类中)中查找。是,您的ReportAction类将同时具有BaseAction.INDEX和BaseAction.ERROR
一般的超类或子类规则也适用于这种情况。如果你在你的子类中找不到什么东西,它会去寻找超类
在您的子类中未找到BaseAction.ERROR,它将进入并查看超类。是的,您做了正确的事情。ReportAction
将同时包含结果ERROR
和索引
。你可以看一看。为什么不通过检查结果映射呢。