Перенаправление URL с использованием struts2 - PullRequest
1 голос
/ 07 октября 2009

Как я могу перенаправить www.mysite.com/12345 на www.mysite.com/action?id=12345, используя struts2?

Ответы [ 2 ]

1 голос
/ 07 октября 2009

Я использую переписывание URL, чтобы заставить работать такие гибкие отображения (хотя вы, вероятно, могли бы сделать это должным образом, возможно, с вашим собственным перехватчиком или чем-то еще). Есть отличный маленький проект, urlrewritefilter , который выполняет свою работу. В вашей конфигурации перезаписи URL у вас будет правило вроде:

<rule>
  <from>^/(\d+)$</from>
  <to>/action?id=$1</to>
</rule>

Взгляните на руководство , чтобы увидеть, если это то, что вы ищете.

0 голосов
/ 07 октября 2009
<action name="12345">
   <result type="redirect-action">
        <param name="actionName">action</param>
        <param name="id">12345</param>
    </result>
</action>

UPDATE Хорошо. На основании комментария ниже.

В прошлом мне удавалось что-то подобное. Создайте пакет в стойках с уловом всех действий.

<package name="numbers">
    <action name="*" class="my.package.ActionClass" method="urlrewrite">
        <result type="redirect-action">
            <param name="actionName">${nextpage}</param>
            <param name="id">${id}</param>
        </result>
    </action>
</package>

Затем в методе urlrewrite класса действия:

public String urlrewrite(){
     //parse the url and determine the ID and the next page
     nextpage = "action";
     id = "12345";
     return SUCCESS;
}

Таким образом, при вызове действия вы должны будете сделать так:

http://www.mysite.com/numbers/12345.action

Если вам не нужен новый пакет, вы можете сделать это в пакете по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...