Форма - значение атрибута действия
Что это значит, если я устанавливаю атрибут действия элемента формы со значением "?"?
В моем приложении элемент формы:
<form action = "?" commandName="demoPageForm" method="POST">
.......
</form>
В контроллере у меня есть как:
@RequestMapping(value = "/getDemoPage", method = RequestMethod.POST)
public ModelAndView setPartGross(
@ModelAttribute("demoPageForm") DemoPageForm emoPageForm,
BindingResult result) {
.......
return ... ;
}
Здесь управление переходит к этому методу контроллера.
Как это возможно?
Какой поток стоит за этим и что отвечает за это отображение?
Я использую цветок магнолии.
кто-нибудь может предложить..?
1 ответ
Установка действия формы на "?" заставит использовать текущий URL (страницы, на которой вы находитесь), и добавит строку запроса "?" на этот URL. Так что, если вы находитесь на http://example.com/getDemoPage, действие формы будет http://example.com/getDemoPage? Вот почему ваш контроллер отвечает.
Для Spring MVC вы должны использовать taglib Spring <form:form...
воспользоваться преимуществами автоматического экранирования HTML (включите его в web.xml) и токенов CSRF при использовании Spring Security.
Вам не нужно устанавливать действие в формах Spring taglib, это всегда будет текущий URL. По умолчанию используется метод POST, поэтому вам также не нужно его устанавливать. Не уверен, почему у вас есть commandName
в обычной форме HTML (не Spring), так как это атрибут Spring.