Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Использование портлета Spring @ActionMapping

Автор вопроса: lisakОтветов: 2

Может ли кто-нибудь объяснить, как правильно отображать запрос POST? это не ясно из документации API.

value должно быть присвоено значение параметра действия javax.portlet.action

@ActionMapping(value = "addDocOrder")
public void addDocOrder(@ModelAttribute("order").......

И затем у нас есть "параметры" (JAVADOC: параметры сопоставленного запроса, сужающие первичное сопоставление.)

@ActionMapping(params = "action=addDocOrder")
public void addDocOrder(@ModelAttribute("order").......

JAVADOC для параметра value() аннотации: Имя действия в соответствии с параметром Portlet 2.0 "javax.portlet.action". Если не указано, метод будет использоваться как обработчик по умолчанию: т. е. для запросов действий, для которых не найдено конкретное сопоставление действий. Обратите внимание, что все такие аннотированные методы действия применяются только в пределах ограничений @RequestMapping содержащего класса обработчика.

Я абсолютно не понимаю, в чем смысл существования параметра аннотации "значение". на самом деле нет никакого смысла в том, чтобы быть там ... оно должно быть первичным сопоставлением, params - вторичным, но {params = "action = addOrder"} делает "value" избыточным.

ПОЖАЛУЙСТА: взгляните на эту проблему, которая также актуальна https://stackoverflow.com/questions/4782971/handling-ajax-requests-with-spring-portlet

javaspring-mvcportlet

Ответы

Ответ 1 · рейтинг 4 · Eric

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

<portlet:actionURL>
  <portlet:param name="javax.portlet.action" value="addDocOrder"/>
</portlet:actionURL>

<portlet:actionURL name="addDocOrder" />

Это из "тега actionURL PLT.26.2" в спецификации.

Ответ 2 · рейтинг 1 · Eric

javax.portlet.action - это имя параметра, которому сопоставлено значение(). Итак, для отображения, например:

@ActionMapping(value = "addDocOrder")
public void addDocOrder(@ModelAttribute("order").......

Ваш запрос должен быть URL-адресом, который должен быть построен следующим образом:

<portlet:actionURL>
  <portlet:param name="javax.portlet.action" value="addDocOrder"/>
</portlet:actionURL>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы