Форма - значение атрибута действия

Что это значит, если я устанавливаю атрибут действия элемента формы со значением "?"?

В моем приложении элемент формы:

 <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.

Другие вопросы по тегам