Spring MVC 3: как я могу создать действие формы с отдыхом? - PullRequest
1 голос
/ 03 марта 2010

Учитывая некоторую типичную форму поиска, я не могу создать это действие при отправке формы:

/myapp/orders/${orderId)

Поскольку пользователь вводит orderId, я не могу включить его в действие формы.

  1. Есть ли отличный способ сделать это в Пружина MVC 3?

  2. Как насчет использования Перехватчика, чтобы построить это? Является это хорошее решение?

  3. В противном случае я застрял с использованием JavaScript для Mung с действием onSubmit. Fun.

Ответы [ 2 ]

0 голосов
/ 05 марта 2010

Я закончил тем, что написал Interceptor, который ищет параметр "id" в GET-запросе, и, если он найден, тогда добавляю это значение в uri и вперед. Например, это:

/myapp/orders?id=1337

становится

/myapp/orders/1337?id=1337
0 голосов
/ 03 марта 2010

По моему опыту, типичный поисковый запрос, как вы описываете, обычно не отображается однозначно на один результат. Даже если вы попросите их ввести идентификатор заказа, они могут захотеть ввести частичный идентификатор и выбрать из списка, или они могут ввести неверно (и вы захотите дать значимый ответ с возможным выбора, тогда как неправильный вызов GET для несуществующего ресурса должен быть просто 404).

Что мне нравится делать, так это иметь промежуточный ресурс, называемый чем-то вроде SearchResult (он не обязательно должен быть реальным объектом в вашей системе). Тогда мой поисковый запрос является вызовом создания / myapp / searchResults /, который включает параметры запроса в качестве переменных POST. Если созданный результат поиска указывает на один заказ, вы можете перенаправить его на / orders / 741, но если нет, у вас больше возможностей для его обработки.

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