Аннотации результатов Struts2 переопределяют или добавляют к определенным значениям суперкласса? - PullRequest
9 голосов
/ 26 сентября 2011

Следующий пример: у меня есть суперкласс и подкласс для действия 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 * только 1011 * @Result из INDEX определены, или он также содержит любые @Result записи, определенные в любом, если это суперклассы.Знает ли мой ReportAction о местоположении, установленном для BaseAction.ERROR ??

Спасибо, Мартин

Ответы [ 3 ]

2 голосов
/ 19 сентября 2014

Да, ваш класс ReportAction будет иметь BaseAction.INDEX и BaseAction.ERROR.

В этом случае также будет применяться общее правило суперкласса или подкласса. Если вы не найдете что-то в своем подклассе, оно пойдет и заглянет в суперкласс.

В вашем случае BaseAction.ERROR не найден в вашем подклассе, он пойдет и заглянет в суперкласс.

0 голосов
/ 19 марта 2014

Он сможет идентифицировать как BaseAction.INDEX, так и BaseAction.ERROR.

Если результат доступен в подклассе (в вашем случае класс ReportAction), из этого следует, что в противном случае он будет выглядеть в суперклассе (в вашем случае, в классе BaseAction).

0 голосов
/ 10 февраля 2012

Это будет иметь оба.Вы можете проверить это с помощью плагина браузера config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...