1

У меня есть перехватчик, который отлично работает, за исключением того, что строка запроса не передается действию от перехватчика.Передача строки запроса в действие через перехватчик

<action name="EditIroCase" class="iro.action.IroCaseAction"> 
      <interceptor-ref name="authIro"/> 
      <result name="success">iro/IroCaseFORM.jsp</result> 
</action> 

URL: /EditIroCase.action?id=123

Действие существующей один, что я добавляю перехватчик в. Внедрение ParamAware в Action для получения идентификатора из URL-адреса, и это работает нормально. Пробовал пару разных вещей, но не мог заставить его работать. Используется множество перехватчиков, просто не нужно поддерживать параметр во время его выполнения.

+1

Что вы подразумеваете под перехватчиком? Вы должны определить стек для действия не одного перехватчика. –

ответ

0

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

Вы должны знать, используете ли вы конфигурацию xx или аннотации или другой поставщик конфигурации, в коллекции хранятся перехватчики, такие как List или Set, неважно, но все они в одном месте. Использование метки <interceptor-ref> внутри <action>переопределяет конфигурацию перехватчика. По умолчанию действия настраиваются с использованием тега <default-interceptor-ref>, который определен в struts-default.xml из основного пакета, и он указывает на defaultStack. Этот стек предназначен для всех ваших потребностей, но если вы используете пользовательский перехватчик, вы должны явно добавить ссылку на defaultStack или создать собственный стек, который вы бы указали.

<action name="EditIroCase" class="iro.action.IroCaseAction"> 
     <interceptor-ref name="authIro"/> 
     <interceptor-ref name="defaultStack"/> 
     <result name="success">iro/IroCaseFORM.jsp</result> 
</action> 

Теперь параметры должны быть заполнены.