Проблемы с миграцией 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 по умолчанию ""
Пространство имен.