Проблемы с миграцией Struts 2.3 на 2.5

Я пытаюсь перейти с Struts 2.3 на 2.5.2, но у меня есть две странные проблемы. Они были хороши в 2.3, так что, возможно, проблема в плагине Convention.

Давайте предположим, что у меня есть два действия:

mypackage.actions.LimitAction
mypackage.actions.user.UserAction

В 2.3:

http://myurl/limit.action          -> OK
http://myurl/anything/limit.action -> There is no Action ... which is OK
http://myurl/user/user.action      -> OK

В 2.5:

http://myurl/anything/limit.action -> OK ... which should be There is no Action ...

И если я установлю действие по умолчанию в struts.xml:

<default-action-ref name="other" />

<action name="other" class="mypackage.actions.OtherAction">
    <result />
</action>

затем

http://myurl/limit.action          -> went wrong and OtherAction is shown

Кажется, что если у меня есть действие по умолчанию, то каждое действие в основном пакете (mypackage.actions) скрыто OtherAction, но

http://myurl/anything/limit.action -> still works which is wrong too

Это ошибка в Struts 2.5.2? Как установить действие по умолчанию, не делая неправильные действия в основном пакете? Как я могу исправить отсутствие доступа к действиям в основном пакете с помощью anyurl/*. Action

1 ответ

Обе проблемы решаются установкой "/" Пространство имен в каждом действии в основном пакете:

@Namespace("/")

Когда URL-адрес запроса

/anything/limit.action 

и Struts не может найти действие, оно будет следить за LimitAction по умолчанию "" Пространство имен.

Другие вопросы по тегам