Допустим, у меня есть простая страница поиска, как это:Spring MVC 3 и плитки: позволяют контроллеру изменить отображаемый URL
<form:form id="productsForm" method="post" modelAttribute="productsFormBean">
<form:label path="name">Name : </form:label>
<form:input path="name" />
<button id="filterSubmit" type="submit">Submit</button>
</form:form>
пользователь может ввести имя и представить страницу, но он также может отправьте страницу без ввода чего-либо.
Можно ли получить RESTful URL вроде этого:
- пользователь вводит имя «АБВ» и представляет страницу: www.mywebpage.com/products/name/xyz/
- пользователь отправляет страницу без имени: www.mywebpage.com/products/
Вот мой контроллер:
@RequestMapping(params = "search=true", value = "/**", method = RequestMethod.POST)
public String searchHandler(@Valid final ProductsFormBean productsFormBean, final Model model) {
// (...)
return "productsSearch";
}
Если я изменяю атрибут «действие» формы, URL-адрес изменяется. Я уже достиг этого с помощью javascript, изменив действие на событие onSubmit. Но это не чистое решение. Можно ли достичь этого непосредственно в контроллере?
Да! «Переадресация: /» делает трюк. Мне пришлось внедрять новые методы обработки URL-адреса, но он работает! И мое перенаправление выглядит примерно так: return "redirect: name /" + search; , Благодаря! –
Не проблема, документация Spring API отлично подходит для таких вопросов, это почти моя библия на работе. – dardo