Как выполнить простое перенаправление в Struts 2?

Я часами искал в Интернете и не могу найти ответ на простой вопрос в Struts 2. По сути, у меня есть следующее действие в Struts 1, которое является простым вперед, и я хочу воспроизвести то же самое в Struts 2:

<action path="/az/api/v22/my-tenants" forward="/components/c/apis/v22/my-tenants.jsp">
      </action>

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


person Sam Blake    schedule 14.07.2016    source источник
comment
Чего вы хотите этим добиться?   -  person Aleksandr M    schedule 14.07.2016


Ответы (1)


Создать результат бездействия в struts.xml

struts.xml:

<package name="v22" namespace="/az/api/v22" extends="struts-default">
    <action name="my-tenants">
        <result>/components/c/apis/v22/my-tenants.jsp</result>
    </action>
</package>

Эта конфигурация определяет пакет с пространством имен /az/api/v22 и именем действия my-tenants. Поэтому, если вы используете путь /az/api/v22/my-tenants, он будет сопоставлен с приведенной выше конфигурацией действия, потому что сопоставитель действий по умолчанию использует пространство имен и имя действия вместе, чтобы получить конфигурацию действия.

В теге действия нет атрибута class, вместо него используется класс ActionSupport. Этот класс настроен по умолчанию в пакете struts-default.

В результате достаточно определить местоположение JSP, потому что по умолчанию struts2 использует диспетчер, который перенаправляет в JSP, и по умолчанию использует код результата "success" в конфигурации результата, который по умолчанию возвращается классом ActionSupport.

person Roman C    schedule 14.07.2016
comment
Это можно сделать без использования атрибута пространства имен пакета. Проблема в том, что пакет в Struts2 уже создан, и эти вызовы будут его частью. Итак, я не контролирую пространство имен пакета. - person ; 14.07.2016
comment
Без атрибута пространства имен вам не хватает части, которую следует добавить перед именем действия. - person Roman C; 14.07.2016