Сопоставление действия struts2 на основе строки запроса, а не имени пути - PullRequest
3 голосов
/ 06 января 2011

Есть ли способ настроить распорки 2, чтобы диспетчер использовал строку запроса для сопоставления вызываемого действия?

Например, в приведенной ниже ссылке я хотел бы вызвать действие бла, а не действие foo.

http://domain:port/myapp/foo.do?someparameter=blah

Спасибо.

Ответы [ 2 ]

4 голосов
/ 07 января 2011

Я не думаю, что это возможно с любым из картографов по умолчанию.

Было бы неплохо создать Interceptor, настроенный для вашего действия foo, которое проверяет значениеsomeparameter, и либо цепочки, либо перенаправляет на ваше blah действие.

2 голосов
/ 07 января 2011

+ 1 Джереми: Это может творить чудеса, если вы не хотите создавать действие, просто создайте своеобразное диспетчерское действие, которое отправит ваш запрос определенному действию на основе значения строки запроса

Например,

Foo action execute();

if (querystring="test") {
    setActionName("Test");
    return "next";
}

На основе этой строки управления вы можете переслать запрос на определенное действие.

<result name="next" type="redirectAction">${actionName}</result>
...