Как настроить один пакет под простым Struts2 и другой под Struts2 + Rest Plugin? - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть приложение, использующее Struts2 для раздела приложения, который находится в папках /portals/.../A и /portals/.../B Файл конфигурации выглядит примерно так:

<struts>
   <package name="portals/*" extends="struts-default">
       <action name="A" ...> ...</action>
       <action name="B" ...> ...</action>
   </package>
</struts>

Это прекрасно работает, пока я не добавлю баночки Rest Plugin. Похоже, что он вступает во владение и игнорирует настройки.

В идеале я хочу оставить порталы нетронутыми и добавить новый пакет с именем rest, который будет обрабатываться плагином Rest.

http://localhost/portals/* .... простые распорки2

http://localhost/rest/* ... struts2 + плагин отдыха

Вопрос «Как?».

Я добавил некоторые настройки плагинов отдыха, такие как:

<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>

но старые действия все еще нарушены.

1 Ответ

0 голосов
/ 10 февраля 2011

Я не видел, чтобы кто-то поместил звездочку в имя пакета. Ваш пакет как таковой может фактически быть "portals / *"

значение

"/ portals / * /" должно предшествовать вызову действия внутри.

IE: "... / portals / * / A.action" будет вызывать действие A. В любом случае, для всех участников гораздо понятнее, если вы просто позвоните и скажете:

<package name="portals" extends="struts-default" namespace="/">
  ...
</package>

В действиях можно использовать подстановочные знаки. То, что это делает, захватывает части URL, позволяя вам динамически вызывать методы / классы и устанавливать параметры, совпадающие с этим символом подстановки. Подробности см. http://struts.apache.org/2.1.8.1/docs/wildcard-mappings.html, однако, насколько я знаю, это не может быть применено к пакетам

...