Как получить класс действия по имени действия в struts2?

Можно ли узнать, какой класс действия будет использоваться для выполнения действия с заданным именем?

Спасибо


person eumust    schedule 14.02.2011    source источник
comment
Вот возможное решение...   -  person Preetam Kumar    schedule 21.06.2016


Ответы (2)


Я предполагаю, что вам нужна эта информация во время выполнения. Это даст вам имя класса действия для указанного пакета и имя действия.

Dispatcher.getInstance()
    .getConfigurationManager()
    .getConfiguration()
    .getPackageConfig("packageName")
    .getActionConfigs()
    .get("actionName")
    .getClassName()

Вы также можете получить фактический класс, если это необходимо, вместе с большим количеством другой информации из класса Configuration.

Примечание. Если вы точно не знаете, что существует пакет и имя действия, не связывайте этот вызов в цепочку, иначе вы, вероятно, получите исключение NullPointerException.

person Steven Benitez    schedule 14.02.2011
comment
Похоже, это не работает с плагином соглашения, если сопоставления не определены явно в struts.xml. - person eumust; 15.02.2011

Если вы просто ищете проверку работоспособности во время тестирования, используйте config-browser-plugin, он предоставит эту информацию уже на правильно отформатированных страницах: https://cwiki.apache.org/S2PLUGINS/config-browser-plugin.html

person Quaternion    schedule 14.02.2011