У нас есть форма, в которой мы получаем данные от пользователя, а затем отправляем эту форму в действие Struts2 с помощью метода HTTP POST.
Но если мы попытаемся отправить ту же форму с помощью метода HTTP GET, struts2 обработает запрос, что не соответствует нашему желанию.
Что мы хотим иметь какую-то конфигурацию на уровне Action в Struts2, где мы можем определить тип HTTPMethod, который должен обрабатывать конкретный Action, например в struts.xml:
<action name = "ABCAction" class = "foo.bar.ABCActoinClass" method = "abcAction" RequestMethod = "POST">
</action>
нам нужно что-то вроде того, что есть в SpringMVC:
@RequestMapping(value = "/ABCController", method = RequestMethod.POSTproduces = {MediaType.APPLICATION_XML_VALUE})
Этого не существует. (Для этого нет никаких серьезных причин, но неважно.) Есть несколько способов справиться с этим, самый простой - просто проверить тип запроса и 404, если это GET. Обычно я либо (а) не заботился, либо (б) использовал специальную аннотацию для его обработки, либо (в) делал тривиальный перехватчик, который перенаправлял запросы на обработчики с соответствующим именем, например, executePost и т. д.




Какие-либо предложения?